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

# Webhooks

> Github incoming webhooks: event paths, payloads, and response data.

The Github plugin handles incoming webhooks. Point your provider’s subscription URL at your Corsair HTTP handler (see [Overview](/plugins/github/overview) for setup context and the exact URL shape).

<Info>
  **New to Corsair?** See [webhooks](/concepts/webhooks) and [hooks](/concepts/hooks).
</Info>

## Webhook map

* `branch`
  * `created` (`branch.created`)
  * `deleted` (`branch.deleted`)
* `checkRun`
  * `completed` (`checkRun.completed`)
  * `created` (`checkRun.created`)
  * `rerequested` (`checkRun.rerequested`)
* `checkSuite`
  * `completed` (`checkSuite.completed`)
  * `requested` (`checkSuite.requested`)
* `comment`
  * `created` (`comment.created`)
  * `deleted` (`comment.deleted`)
  * `edited` (`comment.edited`)
* `dependabotAlert`
  * `autoDismissed` (`dependabotAlert.autoDismissed`)
  * `autoReopened` (`dependabotAlert.autoReopened`)
  * `created` (`dependabotAlert.created`)
  * `dismissed` (`dependabotAlert.dismissed`)
  * `fixed` (`dependabotAlert.fixed`)
  * `reopened` (`dependabotAlert.reopened`)
* `deployment`
  * `created` (`deployment.created`)
* `deploymentStatus`
  * `created` (`deploymentStatus.created`)
* `discussion`
  * `answered` (`discussion.answered`)
  * `closed` (`discussion.closed`)
  * `created` (`discussion.created`)
  * `deleted` (`discussion.deleted`)
  * `edited` (`discussion.edited`)
  * `reopened` (`discussion.reopened`)
* `discussionComment`
  * `created` (`discussionComment.created`)
  * `deleted` (`discussionComment.deleted`)
  * `edited` (`discussionComment.edited`)
* `fork`
  * `forked` (`fork.forked`)
* `issue`
  * `assigned` (`issue.assigned`)
  * `closed` (`issue.closed`)
  * `deleted` (`issue.deleted`)
  * `edited` (`issue.edited`)
  * `labeled` (`issue.labeled`)
  * `locked` (`issue.locked`)
  * `opened` (`issue.opened`)
  * `pinned` (`issue.pinned`)
  * `reopened` (`issue.reopened`)
  * `transferred` (`issue.transferred`)
  * `unassigned` (`issue.unassigned`)
  * `unlabeled` (`issue.unlabeled`)
  * `unlocked` (`issue.unlocked`)
  * `unpinned` (`issue.unpinned`)
* `label`
  * `created` (`label.created`)
  * `deleted` (`label.deleted`)
  * `edited` (`label.edited`)
* `member`
  * `added` (`member.added`)
  * `removed` (`member.removed`)
* `membership`
  * `added` (`membership.added`)
  * `removed` (`membership.removed`)
* `milestone`
  * `closed` (`milestone.closed`)
  * `created` (`milestone.created`)
  * `deleted` (`milestone.deleted`)
  * `edited` (`milestone.edited`)
  * `opened` (`milestone.opened`)
* `pullRequest`
  * `closed` (`pullRequest.closed`)
  * `convertedToDraft` (`pullRequest.convertedToDraft`)
  * `labeled` (`pullRequest.labeled`)
  * `opened` (`pullRequest.opened`)
  * `readyForReview` (`pullRequest.readyForReview`)
  * `reopened` (`pullRequest.reopened`)
  * `reviewRequested` (`pullRequest.reviewRequested`)
  * `synchronize` (`pullRequest.synchronize`)
  * `unlabeled` (`pullRequest.unlabeled`)
* `pullRequestReview`
  * `dismissed` (`pullRequestReview.dismissed`)
  * `edited` (`pullRequestReview.edited`)
  * `submitted` (`pullRequestReview.submitted`)
* `pullRequestReviewComment`
  * `created` (`pullRequestReviewComment.created`)
  * `deleted` (`pullRequestReviewComment.deleted`)
  * `edited` (`pullRequestReviewComment.edited`)
* `pullRequestReviewThread`
  * `resolved` (`pullRequestReviewThread.resolved`)
  * `unresolved` (`pullRequestReviewThread.unresolved`)
* `push` (`push`)
* `release`
  * `created` (`release.created`)
  * `deleted` (`release.deleted`)
  * `edited` (`release.edited`)
  * `prereleased` (`release.prereleased`)
  * `published` (`release.published`)
  * `released` (`release.released`)
  * `unpublished` (`release.unpublished`)
* `repository`
  * `archived` (`repository.archived`)
  * `created` (`repository.created`)
  * `deleted` (`repository.deleted`)
  * `privatized` (`repository.privatized`)
  * `publicized` (`repository.publicized`)
  * `renamed` (`repository.renamed`)
  * `transferred` (`repository.transferred`)
  * `unarchived` (`repository.unarchived`)
* `star`
  * `created` (`star.created`)
  * `deleted` (`star.deleted`)
* `tag`
  * `created` (`tag.created`)
  * `deleted` (`tag.deleted`)
* `watch`
  * `started` (`watch.started`)
* `workflowDispatch`
  * `dispatched` (`workflowDispatch.dispatched`)
* `workflowJob`
  * `completed` (`workflowJob.completed`)
  * `inProgress` (`workflowJob.inProgress`)
  * `queued` (`workflowJob.queued`)
  * `waiting` (`workflowJob.waiting`)
* `workflowRun`
  * `completed` (`workflowRun.completed`)
  * `inProgress` (`workflowRun.inProgress`)
  * `requested` (`workflowRun.requested`)

## HTTP handler setup

```ts app/api/webhook/route.ts theme={null}
import { processWebhook } from "corsair";
import { corsair } from "@/server/corsair";

export async function POST(request: Request) {
    const headers = Object.fromEntries(request.headers);
    const body = await request.json();
    const result = await processWebhook(corsair, headers, body);
    return result.response;
}
```

## Events

## Branch

### Created

`branch.created`

A branch was created

**Payload**

| Name            | Type     | Required | Description |
| --------------- | -------- | -------- | ----------- |
| `ref`           | `string` | Yes      | —           |
| `ref_type`      | `branch` | Yes      | —           |
| `master_branch` | `string` | Yes      | —           |
| `description`   | `string` | No       | —           |
| `pusher_type`   | `string` | Yes      | —           |
| `repository`    | `object` | Yes      | —           |
| `sender`        | `object` | Yes      | —           |
| `installation`  | `object` | No       | —           |
| `organization`  | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      ref: string,
      ref_type: branch,
      master_branch: string,
      description?: string | null,
      pusher_type: string,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        branch: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`branch.deleted`

A branch was deleted

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `ref`          | `string` | Yes      | —           |
| `ref_type`     | `branch` | Yes      | —           |
| `pusher_type`  | `string` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      ref: string,
      ref_type: branch,
      pusher_type: string,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        branch: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Check Run

### Completed

`checkRun.completed`

A check run completed

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `completed` | Yes      | —           |
| `check_run`    | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="check_run full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      head_sha: string,
      external_id?: string | null,
      url: string,
      html_url?: string | null,
      details_url?: string | null,
      status: queued | in_progress | completed,
      conclusion?: string | null,
      started_at?: string | null,
      completed_at?: string | null,
      name: string,
      check_suite?: {
        id: number,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        status?: string | null,
        conclusion?: string | null,
        url: string
      } | null,
      app?: any | null,
      pull_requests: any[]
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: completed,
      check_run: {
        id: number,
        node_id: string,
        head_sha: string,
        external_id?: string | null,
        url: string,
        html_url?: string | null,
        details_url?: string | null,
        status: queued | in_progress | completed,
        conclusion?: string | null,
        started_at?: string | null,
        completed_at?: string | null,
        name: string,
        check_suite?: {
          id: number,
          node_id: string,
          head_branch?: string | null,
          head_sha: string,
          status?: string | null,
          conclusion?: string | null,
          url: string
        } | null,
        app?: any | null,
        pull_requests: any[]
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        checkRun: {
            completed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Created

`checkRun.created`

A check run was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `check_run`    | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="check_run full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      head_sha: string,
      external_id?: string | null,
      url: string,
      html_url?: string | null,
      details_url?: string | null,
      status: queued | in_progress | completed,
      conclusion?: string | null,
      started_at?: string | null,
      completed_at?: string | null,
      name: string,
      check_suite?: {
        id: number,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        status?: string | null,
        conclusion?: string | null,
        url: string
      } | null,
      app?: any | null,
      pull_requests: any[]
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      check_run: {
        id: number,
        node_id: string,
        head_sha: string,
        external_id?: string | null,
        url: string,
        html_url?: string | null,
        details_url?: string | null,
        status: queued | in_progress | completed,
        conclusion?: string | null,
        started_at?: string | null,
        completed_at?: string | null,
        name: string,
        check_suite?: {
          id: number,
          node_id: string,
          head_branch?: string | null,
          head_sha: string,
          status?: string | null,
          conclusion?: string | null,
          url: string
        } | null,
        app?: any | null,
        pull_requests: any[]
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        checkRun: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Rerequested

`checkRun.rerequested`

A check run was re-requested

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `rerequested` | Yes      | —           |
| `check_run`    | `object`      | Yes      | —           |
| `repository`   | `object`      | Yes      | —           |
| `sender`       | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |

<AccordionGroup>
  <Accordion title="check_run full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      head_sha: string,
      external_id?: string | null,
      url: string,
      html_url?: string | null,
      details_url?: string | null,
      status: queued | in_progress | completed,
      conclusion?: string | null,
      started_at?: string | null,
      completed_at?: string | null,
      name: string,
      check_suite?: {
        id: number,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        status?: string | null,
        conclusion?: string | null,
        url: string
      } | null,
      app?: any | null,
      pull_requests: any[]
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: rerequested,
      check_run: {
        id: number,
        node_id: string,
        head_sha: string,
        external_id?: string | null,
        url: string,
        html_url?: string | null,
        details_url?: string | null,
        status: queued | in_progress | completed,
        conclusion?: string | null,
        started_at?: string | null,
        completed_at?: string | null,
        name: string,
        check_suite?: {
          id: number,
          node_id: string,
          head_branch?: string | null,
          head_sha: string,
          status?: string | null,
          conclusion?: string | null,
          url: string
        } | null,
        app?: any | null,
        pull_requests: any[]
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        checkRun: {
            rerequested: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Check Suite

### Completed

`checkSuite.completed`

A check suite completed

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `completed` | Yes      | —           |
| `check_suite`  | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="check_suite full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      head_branch?: string | null,
      head_sha: string,
      status?: string | null,
      conclusion?: string | null,
      url: string,
      before?: string | null,
      after?: string | null,
      pull_requests: any[],
      created_at: string,
      updated_at: string,
      app?: any | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: completed,
      check_suite: {
        id: number,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        status?: string | null,
        conclusion?: string | null,
        url: string,
        before?: string | null,
        after?: string | null,
        pull_requests: any[],
        created_at: string,
        updated_at: string,
        app?: any | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        checkSuite: {
            completed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Requested

`checkSuite.requested`

A check suite was requested

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `requested` | Yes      | —           |
| `check_suite`  | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="check_suite full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      head_branch?: string | null,
      head_sha: string,
      status?: string | null,
      conclusion?: string | null,
      url: string,
      before?: string | null,
      after?: string | null,
      pull_requests: any[],
      created_at: string,
      updated_at: string,
      app?: any | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: requested,
      check_suite: {
        id: number,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        status?: string | null,
        conclusion?: string | null,
        url: string,
        before?: string | null,
        after?: string | null,
        pull_requests: any[],
        created_at: string,
        updated_at: string,
        app?: any | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        checkSuite: {
            requested: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Comment

### Created

`comment.created`

A comment was added to an issue or pull request

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `issue`        | `object`  | Yes      | —           |
| `comment`      | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="comment full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      issue_url: string,
      id: number,
      node_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      created_at: string,
      updated_at: string,
      author_association: string,
      body: string
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      comment: {
        url: string,
        html_url: string,
        issue_url: string,
        id: number,
        node_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        created_at: string,
        updated_at: string,
        author_association: string,
        body: string
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        comment: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`comment.deleted`

A comment on an issue or pull request was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `issue`        | `object`  | Yes      | —           |
| `comment`      | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="comment full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      issue_url: string,
      id: number,
      node_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      created_at: string,
      updated_at: string,
      author_association: string,
      body: string
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      comment: {
        url: string,
        html_url: string,
        issue_url: string,
        id: number,
        node_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        created_at: string,
        updated_at: string,
        author_association: string,
        body: string
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        comment: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`comment.edited`

A comment on an issue or pull request was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `issue`        | `object` | Yes      | —           |
| `comment`      | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="comment full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      issue_url: string,
      id: number,
      node_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      created_at: string,
      updated_at: string,
      author_association: string,
      body: string
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
      body?: {
        from: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      comment: {
        url: string,
        html_url: string,
        issue_url: string,
        id: number,
        node_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        created_at: string,
        updated_at: string,
        author_association: string,
        body: string
      },
      changes?: {
        body?: {
          from: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        comment: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Dependabot Alert

### Auto Dismissed

`dependabotAlert.autoDismissed`

A Dependabot alert was auto-dismissed

**Payload**

| Name           | Type             | Required | Description |
| -------------- | ---------------- | -------- | ----------- |
| `action`       | `auto_dismissed` | Yes      | —           |
| `alert`        | `object`         | Yes      | —           |
| `repository`   | `object`         | Yes      | —           |
| `sender`       | `object`         | Yes      | —           |
| `installation` | `object`         | No       | —           |
| `organization` | `object`         | No       | —           |

<AccordionGroup>
  <Accordion title="alert full type">
    ```ts theme={null}
    {
      number: number,
      state: string,
      dependency: {
        package: {
          ecosystem: string,
          name: string
        },
        manifest_path: string,
        scope?: string | null
      },
      security_advisory: {
        ghsa_id: string,
        cve_id?: string | null,
        summary: string,
        description: string,
        severity: string,
        identifiers: {
          value: string,
          type: string
        }[],
        references: {
          url: string
        }[],
        published_at: string,
        updated_at: string,
        withdrawn_at?: string | null
      },
      security_vulnerability: {
        package: {
          ecosystem: string,
          name: string
        },
        severity: string,
        vulnerable_version_range: string,
        first_patched_version?: {
          identifier: string
        } | null
      },
      url: string,
      html_url: string,
      created_at: string,
      updated_at: string,
      dismissed_at?: string | null,
      dismissed_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      dismissed_reason?: string | null,
      dismissed_comment?: string | null,
      fixed_at?: string | null,
      auto_dismissed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: auto_dismissed,
      alert: {
        number: number,
        state: string,
        dependency: {
          package: {
            ecosystem: string,
            name: string
          },
          manifest_path: string,
          scope?: string | null
        },
        security_advisory: {
          ghsa_id: string,
          cve_id?: string | null,
          summary: string,
          description: string,
          severity: string,
          identifiers: {
            value: string,
            type: string
          }[],
          references: {
            url: string
          }[],
          published_at: string,
          updated_at: string,
          withdrawn_at?: string | null
        },
        security_vulnerability: {
          package: {
            ecosystem: string,
            name: string
          },
          severity: string,
          vulnerable_version_range: string,
          first_patched_version?: {
            identifier: string
          } | null
        },
        url: string,
        html_url: string,
        created_at: string,
        updated_at: string,
        dismissed_at?: string | null,
        dismissed_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        dismissed_reason?: string | null,
        dismissed_comment?: string | null,
        fixed_at?: string | null,
        auto_dismissed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        dependabotAlert: {
            autoDismissed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Auto Reopened

`dependabotAlert.autoReopened`

A Dependabot alert was auto-reopened

**Payload**

| Name           | Type            | Required | Description |
| -------------- | --------------- | -------- | ----------- |
| `action`       | `auto_reopened` | Yes      | —           |
| `alert`        | `object`        | Yes      | —           |
| `repository`   | `object`        | Yes      | —           |
| `sender`       | `object`        | Yes      | —           |
| `installation` | `object`        | No       | —           |
| `organization` | `object`        | No       | —           |

<AccordionGroup>
  <Accordion title="alert full type">
    ```ts theme={null}
    {
      number: number,
      state: string,
      dependency: {
        package: {
          ecosystem: string,
          name: string
        },
        manifest_path: string,
        scope?: string | null
      },
      security_advisory: {
        ghsa_id: string,
        cve_id?: string | null,
        summary: string,
        description: string,
        severity: string,
        identifiers: {
          value: string,
          type: string
        }[],
        references: {
          url: string
        }[],
        published_at: string,
        updated_at: string,
        withdrawn_at?: string | null
      },
      security_vulnerability: {
        package: {
          ecosystem: string,
          name: string
        },
        severity: string,
        vulnerable_version_range: string,
        first_patched_version?: {
          identifier: string
        } | null
      },
      url: string,
      html_url: string,
      created_at: string,
      updated_at: string,
      dismissed_at?: string | null,
      dismissed_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      dismissed_reason?: string | null,
      dismissed_comment?: string | null,
      fixed_at?: string | null,
      auto_dismissed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: auto_reopened,
      alert: {
        number: number,
        state: string,
        dependency: {
          package: {
            ecosystem: string,
            name: string
          },
          manifest_path: string,
          scope?: string | null
        },
        security_advisory: {
          ghsa_id: string,
          cve_id?: string | null,
          summary: string,
          description: string,
          severity: string,
          identifiers: {
            value: string,
            type: string
          }[],
          references: {
            url: string
          }[],
          published_at: string,
          updated_at: string,
          withdrawn_at?: string | null
        },
        security_vulnerability: {
          package: {
            ecosystem: string,
            name: string
          },
          severity: string,
          vulnerable_version_range: string,
          first_patched_version?: {
            identifier: string
          } | null
        },
        url: string,
        html_url: string,
        created_at: string,
        updated_at: string,
        dismissed_at?: string | null,
        dismissed_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        dismissed_reason?: string | null,
        dismissed_comment?: string | null,
        fixed_at?: string | null,
        auto_dismissed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        dependabotAlert: {
            autoReopened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Created

`dependabotAlert.created`

A Dependabot alert was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `alert`        | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="alert full type">
    ```ts theme={null}
    {
      number: number,
      state: string,
      dependency: {
        package: {
          ecosystem: string,
          name: string
        },
        manifest_path: string,
        scope?: string | null
      },
      security_advisory: {
        ghsa_id: string,
        cve_id?: string | null,
        summary: string,
        description: string,
        severity: string,
        identifiers: {
          value: string,
          type: string
        }[],
        references: {
          url: string
        }[],
        published_at: string,
        updated_at: string,
        withdrawn_at?: string | null
      },
      security_vulnerability: {
        package: {
          ecosystem: string,
          name: string
        },
        severity: string,
        vulnerable_version_range: string,
        first_patched_version?: {
          identifier: string
        } | null
      },
      url: string,
      html_url: string,
      created_at: string,
      updated_at: string,
      dismissed_at?: string | null,
      dismissed_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      dismissed_reason?: string | null,
      dismissed_comment?: string | null,
      fixed_at?: string | null,
      auto_dismissed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      alert: {
        number: number,
        state: string,
        dependency: {
          package: {
            ecosystem: string,
            name: string
          },
          manifest_path: string,
          scope?: string | null
        },
        security_advisory: {
          ghsa_id: string,
          cve_id?: string | null,
          summary: string,
          description: string,
          severity: string,
          identifiers: {
            value: string,
            type: string
          }[],
          references: {
            url: string
          }[],
          published_at: string,
          updated_at: string,
          withdrawn_at?: string | null
        },
        security_vulnerability: {
          package: {
            ecosystem: string,
            name: string
          },
          severity: string,
          vulnerable_version_range: string,
          first_patched_version?: {
            identifier: string
          } | null
        },
        url: string,
        html_url: string,
        created_at: string,
        updated_at: string,
        dismissed_at?: string | null,
        dismissed_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        dismissed_reason?: string | null,
        dismissed_comment?: string | null,
        fixed_at?: string | null,
        auto_dismissed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        dependabotAlert: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Dismissed

`dependabotAlert.dismissed`

A Dependabot alert was dismissed

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `dismissed` | Yes      | —           |
| `alert`        | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="alert full type">
    ```ts theme={null}
    {
      number: number,
      state: string,
      dependency: {
        package: {
          ecosystem: string,
          name: string
        },
        manifest_path: string,
        scope?: string | null
      },
      security_advisory: {
        ghsa_id: string,
        cve_id?: string | null,
        summary: string,
        description: string,
        severity: string,
        identifiers: {
          value: string,
          type: string
        }[],
        references: {
          url: string
        }[],
        published_at: string,
        updated_at: string,
        withdrawn_at?: string | null
      },
      security_vulnerability: {
        package: {
          ecosystem: string,
          name: string
        },
        severity: string,
        vulnerable_version_range: string,
        first_patched_version?: {
          identifier: string
        } | null
      },
      url: string,
      html_url: string,
      created_at: string,
      updated_at: string,
      dismissed_at?: string | null,
      dismissed_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      dismissed_reason?: string | null,
      dismissed_comment?: string | null,
      fixed_at?: string | null,
      auto_dismissed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: dismissed,
      alert: {
        number: number,
        state: string,
        dependency: {
          package: {
            ecosystem: string,
            name: string
          },
          manifest_path: string,
          scope?: string | null
        },
        security_advisory: {
          ghsa_id: string,
          cve_id?: string | null,
          summary: string,
          description: string,
          severity: string,
          identifiers: {
            value: string,
            type: string
          }[],
          references: {
            url: string
          }[],
          published_at: string,
          updated_at: string,
          withdrawn_at?: string | null
        },
        security_vulnerability: {
          package: {
            ecosystem: string,
            name: string
          },
          severity: string,
          vulnerable_version_range: string,
          first_patched_version?: {
            identifier: string
          } | null
        },
        url: string,
        html_url: string,
        created_at: string,
        updated_at: string,
        dismissed_at?: string | null,
        dismissed_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        dismissed_reason?: string | null,
        dismissed_comment?: string | null,
        fixed_at?: string | null,
        auto_dismissed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        dependabotAlert: {
            dismissed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Fixed

`dependabotAlert.fixed`

A Dependabot alert was fixed

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `fixed`  | Yes      | —           |
| `alert`        | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="alert full type">
    ```ts theme={null}
    {
      number: number,
      state: string,
      dependency: {
        package: {
          ecosystem: string,
          name: string
        },
        manifest_path: string,
        scope?: string | null
      },
      security_advisory: {
        ghsa_id: string,
        cve_id?: string | null,
        summary: string,
        description: string,
        severity: string,
        identifiers: {
          value: string,
          type: string
        }[],
        references: {
          url: string
        }[],
        published_at: string,
        updated_at: string,
        withdrawn_at?: string | null
      },
      security_vulnerability: {
        package: {
          ecosystem: string,
          name: string
        },
        severity: string,
        vulnerable_version_range: string,
        first_patched_version?: {
          identifier: string
        } | null
      },
      url: string,
      html_url: string,
      created_at: string,
      updated_at: string,
      dismissed_at?: string | null,
      dismissed_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      dismissed_reason?: string | null,
      dismissed_comment?: string | null,
      fixed_at?: string | null,
      auto_dismissed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: fixed,
      alert: {
        number: number,
        state: string,
        dependency: {
          package: {
            ecosystem: string,
            name: string
          },
          manifest_path: string,
          scope?: string | null
        },
        security_advisory: {
          ghsa_id: string,
          cve_id?: string | null,
          summary: string,
          description: string,
          severity: string,
          identifiers: {
            value: string,
            type: string
          }[],
          references: {
            url: string
          }[],
          published_at: string,
          updated_at: string,
          withdrawn_at?: string | null
        },
        security_vulnerability: {
          package: {
            ecosystem: string,
            name: string
          },
          severity: string,
          vulnerable_version_range: string,
          first_patched_version?: {
            identifier: string
          } | null
        },
        url: string,
        html_url: string,
        created_at: string,
        updated_at: string,
        dismissed_at?: string | null,
        dismissed_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        dismissed_reason?: string | null,
        dismissed_comment?: string | null,
        fixed_at?: string | null,
        auto_dismissed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        dependabotAlert: {
            fixed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Reopened

`dependabotAlert.reopened`

A Dependabot alert was reopened

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `reopened` | Yes      | —           |
| `alert`        | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="alert full type">
    ```ts theme={null}
    {
      number: number,
      state: string,
      dependency: {
        package: {
          ecosystem: string,
          name: string
        },
        manifest_path: string,
        scope?: string | null
      },
      security_advisory: {
        ghsa_id: string,
        cve_id?: string | null,
        summary: string,
        description: string,
        severity: string,
        identifiers: {
          value: string,
          type: string
        }[],
        references: {
          url: string
        }[],
        published_at: string,
        updated_at: string,
        withdrawn_at?: string | null
      },
      security_vulnerability: {
        package: {
          ecosystem: string,
          name: string
        },
        severity: string,
        vulnerable_version_range: string,
        first_patched_version?: {
          identifier: string
        } | null
      },
      url: string,
      html_url: string,
      created_at: string,
      updated_at: string,
      dismissed_at?: string | null,
      dismissed_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      dismissed_reason?: string | null,
      dismissed_comment?: string | null,
      fixed_at?: string | null,
      auto_dismissed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: reopened,
      alert: {
        number: number,
        state: string,
        dependency: {
          package: {
            ecosystem: string,
            name: string
          },
          manifest_path: string,
          scope?: string | null
        },
        security_advisory: {
          ghsa_id: string,
          cve_id?: string | null,
          summary: string,
          description: string,
          severity: string,
          identifiers: {
            value: string,
            type: string
          }[],
          references: {
            url: string
          }[],
          published_at: string,
          updated_at: string,
          withdrawn_at?: string | null
        },
        security_vulnerability: {
          package: {
            ecosystem: string,
            name: string
          },
          severity: string,
          vulnerable_version_range: string,
          first_patched_version?: {
            identifier: string
          } | null
        },
        url: string,
        html_url: string,
        created_at: string,
        updated_at: string,
        dismissed_at?: string | null,
        dismissed_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        dismissed_reason?: string | null,
        dismissed_comment?: string | null,
        fixed_at?: string | null,
        auto_dismissed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        dependabotAlert: {
            reopened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Deployment

### Created

`deployment.created`

A deployment was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `deployment`   | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="deployment full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      sha: string,
      ref: string,
      task: string,
      environment: string,
      description?: string | null,
      creator?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      created_at: string,
      updated_at: string,
      statuses_url: string,
      repository_url: string,
      performed_via_github_app?: any | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      deployment: {
        url: string,
        id: number,
        node_id: string,
        sha: string,
        ref: string,
        task: string,
        environment: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        created_at: string,
        updated_at: string,
        statuses_url: string,
        repository_url: string,
        performed_via_github_app?: any | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        deployment: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Deployment Status

### Created

`deploymentStatus.created`

A deployment status was updated

**Payload**

| Name                | Type      | Required | Description |
| ------------------- | --------- | -------- | ----------- |
| `action`            | `created` | Yes      | —           |
| `deployment`        | `object`  | Yes      | —           |
| `deployment_status` | `object`  | Yes      | —           |
| `repository`        | `object`  | Yes      | —           |
| `sender`            | `object`  | Yes      | —           |
| `installation`      | `object`  | No       | —           |
| `organization`      | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="deployment full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      sha: string,
      ref: string,
      task: string,
      environment: string,
      description?: string | null,
      creator?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      created_at: string,
      updated_at: string,
      statuses_url: string,
      repository_url: string,
      performed_via_github_app?: any | null
    }
    ```
  </Accordion>

  <Accordion title="deployment_status full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      state: error | failure | inactive | in_progress | queued | pending | success | waiting,
      creator: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      description?: string | null,
      environment?: string,
      target_url?: string | null,
      created_at: string,
      updated_at: string,
      deployment_url: string,
      repository_url: string
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      deployment: {
        url: string,
        id: number,
        node_id: string,
        sha: string,
        ref: string,
        task: string,
        environment: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        created_at: string,
        updated_at: string,
        statuses_url: string,
        repository_url: string,
        performed_via_github_app?: any | null
      },
      deployment_status: {
        url: string,
        id: number,
        node_id: string,
        state: error | failure | inactive | in_progress | queued | pending | success | waiting,
        creator: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        description?: string | null,
        environment?: string,
        target_url?: string | null,
        created_at: string,
        updated_at: string,
        deployment_url: string,
        repository_url: string
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        deploymentStatus: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Discussion

### Answered

`discussion.answered`

A discussion was answered

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `answered` | Yes      | —           |
| `discussion`   | `object`   | Yes      | —           |
| `answer`       | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="answer full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      html_url: string,
      parent_id?: number | null,
      child_comment_count: number,
      repository_url: string,
      discussion_id: number,
      author_association: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      created_at: string,
      updated_at: string,
      body: string
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: answered,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      answer: {
        id: number,
        node_id: string,
        html_url: string,
        parent_id?: number | null,
        child_comment_count: number,
        repository_url: string,
        discussion_id: number,
        author_association: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        created_at: string,
        updated_at: string,
        body: string
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussion: {
            answered: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Closed

`discussion.closed`

A discussion was closed

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `closed` | Yes      | —           |
| `discussion`   | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: closed,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussion: {
            closed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Created

`discussion.created`

A discussion was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `discussion`   | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussion: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`discussion.deleted`

A discussion was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `discussion`   | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussion: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`discussion.edited`

A discussion was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `discussion`   | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      changes?: {
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussion: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Reopened

`discussion.reopened`

A discussion was reopened

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `reopened` | Yes      | —           |
| `discussion`   | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: reopened,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussion: {
            reopened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Discussion Comment

### Created

`discussionComment.created`

A discussion comment was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `discussion`   | `object`  | Yes      | —           |
| `comment`      | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="comment full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      html_url: string,
      parent_id?: number | null,
      child_comment_count: number,
      repository_url: string,
      discussion_id: number,
      author_association: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      created_at: string,
      updated_at: string,
      body: string
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      comment: {
        id: number,
        node_id: string,
        html_url: string,
        parent_id?: number | null,
        child_comment_count: number,
        repository_url: string,
        discussion_id: number,
        author_association: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        created_at: string,
        updated_at: string,
        body: string
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussionComment: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`discussionComment.deleted`

A discussion comment was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `discussion`   | `object`  | Yes      | —           |
| `comment`      | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="comment full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      html_url: string,
      parent_id?: number | null,
      child_comment_count: number,
      repository_url: string,
      discussion_id: number,
      author_association: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      created_at: string,
      updated_at: string,
      body: string
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      comment: {
        id: number,
        node_id: string,
        html_url: string,
        parent_id?: number | null,
        child_comment_count: number,
        repository_url: string,
        discussion_id: number,
        author_association: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        created_at: string,
        updated_at: string,
        body: string
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussionComment: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`discussionComment.edited`

A discussion comment was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `discussion`   | `object` | Yes      | —           |
| `comment`      | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="discussion full type">
    ```ts theme={null}
    {
      repository_url: string,
      category: {
        id: number,
        node_id: string,
        repository_id: number,
        emoji: string,
        name: string,
        description: string,
        created_at: string,
        updated_at: string,
        slug: string,
        is_answerable: boolean
      },
      answer_html_url?: string | null,
      answer_chosen_at?: string | null,
      answer_chosen_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      state: string,
      locked: boolean,
      comments: number,
      created_at: string,
      updated_at: string,
      author_association: string,
      active_lock_reason?: string | null,
      body?: string | null
    }
    ```
  </Accordion>

  <Accordion title="comment full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      html_url: string,
      parent_id?: number | null,
      child_comment_count: number,
      repository_url: string,
      discussion_id: number,
      author_association: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      created_at: string,
      updated_at: string,
      body: string
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
      body?: {
        from: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      discussion: {
        repository_url: string,
        category: {
          id: number,
          node_id: string,
          repository_id: number,
          emoji: string,
          name: string,
          description: string,
          created_at: string,
          updated_at: string,
          slug: string,
          is_answerable: boolean
        },
        answer_html_url?: string | null,
        answer_chosen_at?: string | null,
        answer_chosen_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        state: string,
        locked: boolean,
        comments: number,
        created_at: string,
        updated_at: string,
        author_association: string,
        active_lock_reason?: string | null,
        body?: string | null
      },
      comment: {
        id: number,
        node_id: string,
        html_url: string,
        parent_id?: number | null,
        child_comment_count: number,
        repository_url: string,
        discussion_id: number,
        author_association: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        created_at: string,
        updated_at: string,
        body: string
      },
      changes?: {
        body?: {
          from: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        discussionComment: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Fork

### Forked

`fork.forked`

A repository was forked

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `forkee`       | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="forkee full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      forkee: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        fork: {
            forked: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Issue

### Assigned

`issue.assigned`

An issue was assigned

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `assigned` | Yes      | —           |
| `issue`        | `object`   | Yes      | —           |
| `assignee`     | `object`   | No       | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="assignee full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: assigned,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            assigned: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Closed

`issue.closed`

An issue was closed

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `closed` | Yes      | —           |
| `issue`        | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: closed,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            closed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`issue.deleted`

An issue was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `issue`        | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`issue.edited`

An issue was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `issue`        | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
      title?: {
        from: string
      },
      body?: {
        from: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      changes?: {
        title?: {
          from: string
        },
        body?: {
          from: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Labeled

`issue.labeled`

A label was added to an issue

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `labeled` | Yes      | —           |
| `issue`        | `object`  | Yes      | —           |
| `label`        | `object`  | No       | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="label full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      name: string,
      color: string,
      default: boolean,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: labeled,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      label?: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            labeled: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Locked

`issue.locked`

An issue was locked

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `locked` | Yes      | —           |
| `issue`        | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: true,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: locked,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: true,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            locked: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Opened

`issue.opened`

An issue was opened

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `opened` | Yes      | —           |
| `issue`        | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: opened,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            opened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Pinned

`issue.pinned`

An issue was pinned

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `pinned` | Yes      | —           |
| `issue`        | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: pinned,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            pinned: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Reopened

`issue.reopened`

An issue was reopened

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `reopened` | Yes      | —           |
| `issue`        | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: reopened,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            reopened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Transferred

`issue.transferred`

An issue was transferred to another repository

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `transferred` | Yes      | —           |
| `issue`        | `object`      | Yes      | —           |
| `changes`      | `object`      | No       | —           |
| `repository`   | `object`      | Yes      | —           |
| `sender`       | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
      new_issue?: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      new_repository?: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: transferred,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      changes?: {
        new_issue?: {
          url: string,
          repository_url: string,
          html_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          user: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          },
          labels: {
            id: number,
            node_id: string,
            url: string,
            name: string,
            color: string,
            default: boolean,
            description?: string | null
          }[],
          state: open | closed,
          locked: boolean,
          assignee?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          assignees: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          }[],
          milestone?: {
            url: string,
            html_url: string,
            labels_url: string,
            id: number,
            node_id: string,
            number: number,
            title: string,
            description?: string | null,
            creator?: {
              login: string,
              id: number,
              node_id: string,
              name?: string,
              email?: string | null,
              avatar_url: string,
              gravatar_id: string,
              url: string,
              html_url: string,
              followers_url: string,
              following_url: string,
              gists_url: string,
              starred_url: string,
              subscriptions_url: string,
              organizations_url: string,
              repos_url: string,
              events_url: string,
              received_events_url: string,
              type: Bot | User | Organization,
              site_admin: boolean
            } | null,
            open_issues: number,
            closed_issues: number,
            state: open | closed,
            created_at: string,
            updated_at: string,
            due_on?: string | null,
            closed_at?: string | null
          } | null,
          comments: number,
          created_at: string,
          updated_at: string,
          closed_at?: string | null,
          body?: string | null,
          active_lock_reason?: string | null,
          draft?: boolean,
          pull_request?: {
            url: string,
            html_url: string,
            diff_url: string,
            patch_url: string
          }
        },
        new_repository?: {
          id: number,
          node_id: string,
          name: string,
          full_name: string,
          private: boolean,
          owner: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          },
          html_url: string,
          description?: string | null,
          fork: boolean,
          url: string,
          created_at: number | string,
          updated_at: string,
          pushed_at?: number | string | null,
          default_branch: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            transferred: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unassigned

`issue.unassigned`

An issue was unassigned

**Payload**

| Name           | Type         | Required | Description |
| -------------- | ------------ | -------- | ----------- |
| `action`       | `unassigned` | Yes      | —           |
| `issue`        | `object`     | Yes      | —           |
| `assignee`     | `object`     | No       | —           |
| `repository`   | `object`     | Yes      | —           |
| `sender`       | `object`     | Yes      | —           |
| `installation` | `object`     | No       | —           |
| `organization` | `object`     | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="assignee full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unassigned,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            unassigned: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unlabeled

`issue.unlabeled`

A label was removed from an issue

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `unlabeled` | Yes      | —           |
| `issue`        | `object`    | Yes      | —           |
| `label`        | `object`    | No       | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="label full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      name: string,
      color: string,
      default: boolean,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unlabeled,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      label?: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            unlabeled: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unlocked

`issue.unlocked`

An issue was unlocked

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `unlocked` | Yes      | —           |
| `issue`        | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: false,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unlocked,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: false,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            unlocked: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unpinned

`issue.unpinned`

An issue was unpinned

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `unpinned` | Yes      | —           |
| `issue`        | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="issue full type">
    ```ts theme={null}
    {
      url: string,
      repository_url: string,
      html_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      labels: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      }[],
      state: open | closed,
      locked: boolean,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      milestone?: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      } | null,
      comments: number,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      body?: string | null,
      active_lock_reason?: string | null,
      draft?: boolean,
      pull_request?: {
        url: string,
        html_url: string,
        diff_url: string,
        patch_url: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unpinned,
      issue: {
        url: string,
        repository_url: string,
        html_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        labels: {
          id: number,
          node_id: string,
          url: string,
          name: string,
          color: string,
          default: boolean,
          description?: string | null
        }[],
        state: open | closed,
        locked: boolean,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        milestone?: {
          url: string,
          html_url: string,
          labels_url: string,
          id: number,
          node_id: string,
          number: number,
          title: string,
          description?: string | null,
          creator?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          } | null,
          open_issues: number,
          closed_issues: number,
          state: open | closed,
          created_at: string,
          updated_at: string,
          due_on?: string | null,
          closed_at?: string | null
        } | null,
        comments: number,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        body?: string | null,
        active_lock_reason?: string | null,
        draft?: boolean,
        pull_request?: {
          url: string,
          html_url: string,
          diff_url: string,
          patch_url: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        issue: {
            unpinned: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Label

### Created

`label.created`

A label was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `label`        | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="label full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      name: string,
      color: string,
      default: boolean,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      label: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        label: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`label.deleted`

A label was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `label`        | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="label full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      name: string,
      color: string,
      default: boolean,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      label: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        label: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`label.edited`

A label was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `label`        | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="label full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      name: string,
      color: string,
      default: boolean,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
      name?: {
        from: string
      },
      color?: {
        from: string
      },
      description?: {
        from: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      label: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      },
      changes?: {
        name?: {
          from: string
        },
        color?: {
          from: string
        },
        description?: {
          from: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        label: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Member

### Added

`member.added`

A collaborator was added to a repository

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `added`  | Yes      | —           |
| `member`       | `object` | No       | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="member full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: added,
      member?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      changes?: {
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        member: {
            added: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Removed

`member.removed`

A collaborator was removed from a repository

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `removed` | Yes      | —           |
| `member`       | `object`  | No       | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="member full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: removed,
      member?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        member: {
            removed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Membership

### Added

`membership.added`

A user was added to a team

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `added`  | Yes      | —           |
| `scope`        | `string` | Yes      | —           |
| `member`       | `object` | No       | —           |
| `team`         | `object` | Yes      | —           |
| `organization` | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="member full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="team full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      html_url: string,
      name: string,
      slug: string,
      description?: string | null,
      privacy: string,
      permission: string,
      members_url: string,
      repositories_url: string,
      parent?: any | null
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: added,
      scope: string,
      member?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      team: {
        id: number,
        node_id: string,
        url: string,
        html_url: string,
        name: string,
        slug: string,
        description?: string | null,
        privacy: string,
        permission: string,
        members_url: string,
        repositories_url: string,
        parent?: any | null
      },
      organization: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        membership: {
            added: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Removed

`membership.removed`

A user was removed from a team

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `removed` | Yes      | —           |
| `scope`        | `string`  | Yes      | —           |
| `member`       | `object`  | No       | —           |
| `team`         | `object`  | Yes      | —           |
| `organization` | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="member full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="team full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      html_url: string,
      name: string,
      slug: string,
      description?: string | null,
      privacy: string,
      permission: string,
      members_url: string,
      repositories_url: string,
      parent?: any | null
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: removed,
      scope: string,
      member?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      team: {
        id: number,
        node_id: string,
        url: string,
        html_url: string,
        name: string,
        slug: string,
        description?: string | null,
        privacy: string,
        permission: string,
        members_url: string,
        repositories_url: string,
        parent?: any | null
      },
      organization: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        membership: {
            removed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Milestone

### Closed

`milestone.closed`

A milestone was closed

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `closed` | Yes      | —           |
| `milestone`    | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="milestone full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      labels_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      description?: string | null,
      creator?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      open_issues: number,
      closed_issues: number,
      state: open | closed,
      created_at: string,
      updated_at: string,
      due_on?: string | null,
      closed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: closed,
      milestone: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        milestone: {
            closed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Created

`milestone.created`

A milestone was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `milestone`    | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="milestone full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      labels_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      description?: string | null,
      creator?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      open_issues: number,
      closed_issues: number,
      state: open | closed,
      created_at: string,
      updated_at: string,
      due_on?: string | null,
      closed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      milestone: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        milestone: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`milestone.deleted`

A milestone was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `milestone`    | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="milestone full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      labels_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      description?: string | null,
      creator?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      open_issues: number,
      closed_issues: number,
      state: open | closed,
      created_at: string,
      updated_at: string,
      due_on?: string | null,
      closed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      milestone: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        milestone: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`milestone.edited`

A milestone was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `milestone`    | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="milestone full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      labels_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      description?: string | null,
      creator?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      open_issues: number,
      closed_issues: number,
      state: open | closed,
      created_at: string,
      updated_at: string,
      due_on?: string | null,
      closed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      milestone: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      },
      changes?: {
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        milestone: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Opened

`milestone.opened`

A milestone was opened

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `opened` | Yes      | —           |
| `milestone`    | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="milestone full type">
    ```ts theme={null}
    {
      url: string,
      html_url: string,
      labels_url: string,
      id: number,
      node_id: string,
      number: number,
      title: string,
      description?: string | null,
      creator?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      open_issues: number,
      closed_issues: number,
      state: open | closed,
      created_at: string,
      updated_at: string,
      due_on?: string | null,
      closed_at?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: opened,
      milestone: {
        url: string,
        html_url: string,
        labels_url: string,
        id: number,
        node_id: string,
        number: number,
        title: string,
        description?: string | null,
        creator?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        open_issues: number,
        closed_issues: number,
        state: open | closed,
        created_at: string,
        updated_at: string,
        due_on?: string | null,
        closed_at?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        milestone: {
            opened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Pull Request

### Closed

`pullRequest.closed`

A pull request was closed or merged

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `closed` | Yes      | —           |
| `number`       | `number` | Yes      | —           |
| `pull_request` | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |
| `sender`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at: string,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged: boolean,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: closed,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at: string,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged: boolean,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            closed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Converted To Draft

`pullRequest.convertedToDraft`

A pull request was converted to a draft

**Payload**

| Name           | Type                 | Required | Description |
| -------------- | -------------------- | -------- | ----------- |
| `action`       | `converted_to_draft` | Yes      | —           |
| `number`       | `number`             | Yes      | —           |
| `pull_request` | `object`             | Yes      | —           |
| `repository`   | `object`             | Yes      | —           |
| `installation` | `object`             | No       | —           |
| `organization` | `object`             | No       | —           |
| `sender`       | `object`             | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: converted_to_draft,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            convertedToDraft: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Labeled

`pullRequest.labeled`

A label was added to a pull request

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `labeled` | Yes      | —           |
| `number`       | `number`  | Yes      | —           |
| `pull_request` | `object`  | Yes      | —           |
| `label`        | `object`  | No       | —           |
| `repository`   | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |
| `sender`       | `object`  | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="label full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      name: string,
      color: string,
      default: boolean,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: labeled,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      label?: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            labeled: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Opened

`pullRequest.opened`

A pull request was opened

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `opened` | Yes      | —           |
| `number`       | `number` | Yes      | —           |
| `pull_request` | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |
| `sender`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at: null,
      merged_at: null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason: null,
      merged_by: null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: opened,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at: null,
        merged_at: null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason: null,
        merged_by: null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            opened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Ready For Review

`pullRequest.readyForReview`

A draft pull request was marked as ready for review

**Payload**

| Name           | Type               | Required | Description |
| -------------- | ------------------ | -------- | ----------- |
| `action`       | `ready_for_review` | Yes      | —           |
| `number`       | `number`           | Yes      | —           |
| `pull_request` | `object`           | Yes      | —           |
| `repository`   | `object`           | Yes      | —           |
| `installation` | `object`           | No       | —           |
| `organization` | `object`           | No       | —           |
| `sender`       | `object`           | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: ready_for_review,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            readyForReview: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Reopened

`pullRequest.reopened`

A pull request was reopened

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `reopened` | Yes      | —           |
| `number`       | `number`   | Yes      | —           |
| `pull_request` | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |
| `sender`       | `object`   | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: reopened,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            reopened: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Review Requested

`pullRequest.reviewRequested`

A review was requested on a pull request

**Payload**

| Name                 | Type               | Required | Description |
| -------------------- | ------------------ | -------- | ----------- |
| `action`             | `review_requested` | Yes      | —           |
| `number`             | `number`           | Yes      | —           |
| `pull_request`       | `object`           | Yes      | —           |
| `requested_reviewer` | `object`           | No       | —           |
| `requested_team`     | `object`           | No       | —           |
| `repository`         | `object`           | Yes      | —           |
| `installation`       | `object`           | No       | —           |
| `organization`       | `object`           | No       | —           |
| `sender`             | `object`           | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="requested_reviewer full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="requested_team full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      html_url: string,
      name: string,
      slug: string,
      description?: string | null,
      privacy: string,
      permission: string,
      members_url: string,
      repositories_url: string,
      parent?: any | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: review_requested,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      requested_reviewer?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      requested_team?: {
        id: number,
        node_id: string,
        url: string,
        html_url: string,
        name: string,
        slug: string,
        description?: string | null,
        privacy: string,
        permission: string,
        members_url: string,
        repositories_url: string,
        parent?: any | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            reviewRequested: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Synchronize

`pullRequest.synchronize`

New commits were pushed to a pull request

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `synchronize` | Yes      | —           |
| `number`       | `number`      | Yes      | —           |
| `before`       | `string`      | Yes      | —           |
| `after`        | `string`      | Yes      | —           |
| `pull_request` | `object`      | Yes      | —           |
| `repository`   | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |
| `sender`       | `object`      | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: synchronize,
      number: number,
      before: string,
      after: string,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            synchronize: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unlabeled

`pullRequest.unlabeled`

A label was removed from a pull request

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `unlabeled` | Yes      | —           |
| `number`       | `number`    | Yes      | —           |
| `pull_request` | `object`    | Yes      | —           |
| `label`        | `object`    | No       | —           |
| `repository`   | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |
| `sender`       | `object`    | Yes      | —           |

<AccordionGroup>
  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="label full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      url: string,
      name: string,
      color: string,
      default: boolean,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unlabeled,
      number: number,
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      label?: {
        id: number,
        node_id: string,
        url: string,
        name: string,
        color: string,
        default: boolean,
        description?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequest: {
            unlabeled: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Pull Request Review

### Dismissed

`pullRequestReview.dismissed`

A pull request review was dismissed

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `dismissed` | Yes      | —           |
| `review`       | `object`    | Yes      | —           |
| `pull_request` | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |
| `sender`       | `object`    | Yes      | —           |

<AccordionGroup>
  <Accordion title="review full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      commit_id: string,
      submitted_at?: string | null,
      state: string,
      html_url: string,
      pull_request_url: string,
      author_association: string
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: dismissed,
      review: {
        id: number,
        node_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        commit_id: string,
        submitted_at?: string | null,
        state: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReview: {
            dismissed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`pullRequestReview.edited`

A pull request review was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `review`       | `object` | Yes      | —           |
| `pull_request` | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |
| `sender`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="review full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      commit_id: string,
      submitted_at?: string | null,
      state: string,
      html_url: string,
      pull_request_url: string,
      author_association: string
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
      body?: {
        from: string
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      review: {
        id: number,
        node_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        commit_id: string,
        submitted_at?: string | null,
        state: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      changes?: {
        body?: {
          from: string
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReview: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Submitted

`pullRequestReview.submitted`

A pull request review was submitted

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `submitted` | Yes      | —           |
| `review`       | `object`    | Yes      | —           |
| `pull_request` | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |
| `sender`       | `object`    | Yes      | —           |

<AccordionGroup>
  <Accordion title="review full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      commit_id: string,
      submitted_at?: string | null,
      state: string,
      html_url: string,
      pull_request_url: string,
      author_association: string
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: submitted,
      review: {
        id: number,
        node_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        commit_id: string,
        submitted_at?: string | null,
        state: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReview: {
            submitted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Pull Request Review Comment

### Created

`pullRequestReviewComment.created`

A comment on a pull request diff was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `comment`      | `object`  | Yes      | —           |
| `pull_request` | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |
| `sender`       | `object`  | Yes      | —           |

<AccordionGroup>
  <Accordion title="comment full type">
    ```ts theme={null}
    {
      url: string,
      pull_request_review_id?: number | null,
      id: number,
      node_id: string,
      diff_hunk: string,
      path: string,
      position?: number | null,
      original_position?: number | null,
      commit_id: string,
      original_commit_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body: string,
      created_at: string,
      updated_at: string,
      html_url: string,
      pull_request_url: string,
      author_association: string
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      comment: {
        url: string,
        pull_request_review_id?: number | null,
        id: number,
        node_id: string,
        diff_hunk: string,
        path: string,
        position?: number | null,
        original_position?: number | null,
        commit_id: string,
        original_commit_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body: string,
        created_at: string,
        updated_at: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReviewComment: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`pullRequestReviewComment.deleted`

A comment on a pull request diff was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `comment`      | `object`  | Yes      | —           |
| `pull_request` | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |
| `sender`       | `object`  | Yes      | —           |

<AccordionGroup>
  <Accordion title="comment full type">
    ```ts theme={null}
    {
      url: string,
      pull_request_review_id?: number | null,
      id: number,
      node_id: string,
      diff_hunk: string,
      path: string,
      position?: number | null,
      original_position?: number | null,
      commit_id: string,
      original_commit_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body: string,
      created_at: string,
      updated_at: string,
      html_url: string,
      pull_request_url: string,
      author_association: string
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      comment: {
        url: string,
        pull_request_review_id?: number | null,
        id: number,
        node_id: string,
        diff_hunk: string,
        path: string,
        position?: number | null,
        original_position?: number | null,
        commit_id: string,
        original_commit_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body: string,
        created_at: string,
        updated_at: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReviewComment: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`pullRequestReviewComment.edited`

A comment on a pull request diff was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `comment`      | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `pull_request` | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |
| `sender`       | `object` | Yes      | —           |

<AccordionGroup>
  <Accordion title="comment full type">
    ```ts theme={null}
    {
      url: string,
      pull_request_review_id?: number | null,
      id: number,
      node_id: string,
      diff_hunk: string,
      path: string,
      position?: number | null,
      original_position?: number | null,
      commit_id: string,
      original_commit_id: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body: string,
      created_at: string,
      updated_at: string,
      html_url: string,
      pull_request_url: string,
      author_association: string
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
      body?: {
        from: string
      }
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      comment: {
        url: string,
        pull_request_review_id?: number | null,
        id: number,
        node_id: string,
        diff_hunk: string,
        path: string,
        position?: number | null,
        original_position?: number | null,
        commit_id: string,
        original_commit_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body: string,
        created_at: string,
        updated_at: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      },
      changes?: {
        body?: {
          from: string
        }
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReviewComment: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Pull Request Review Thread

### Resolved

`pullRequestReviewThread.resolved`

A pull request review thread was resolved

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `resolved` | Yes      | —           |
| `thread`       | `object`   | Yes      | —           |
| `pull_request` | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |
| `sender`       | `object`   | Yes      | —           |

<AccordionGroup>
  <Accordion title="thread full type">
    ```ts theme={null}
    {
      node_id: string,
      comments: {
        url: string,
        pull_request_review_id?: number | null,
        id: number,
        node_id: string,
        diff_hunk: string,
        path: string,
        position?: number | null,
        original_position?: number | null,
        commit_id: string,
        original_commit_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body: string,
        created_at: string,
        updated_at: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      }[]
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: resolved,
      thread: {
        node_id: string,
        comments: {
          url: string,
          pull_request_review_id?: number | null,
          id: number,
          node_id: string,
          diff_hunk: string,
          path: string,
          position?: number | null,
          original_position?: number | null,
          commit_id: string,
          original_commit_id: string,
          user: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          },
          body: string,
          created_at: string,
          updated_at: string,
          html_url: string,
          pull_request_url: string,
          author_association: string
        }[]
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReviewThread: {
            resolved: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unresolved

`pullRequestReviewThread.unresolved`

A pull request review thread was unresolved

**Payload**

| Name           | Type         | Required | Description |
| -------------- | ------------ | -------- | ----------- |
| `action`       | `unresolved` | Yes      | —           |
| `thread`       | `object`     | Yes      | —           |
| `pull_request` | `object`     | Yes      | —           |
| `repository`   | `object`     | Yes      | —           |
| `installation` | `object`     | No       | —           |
| `organization` | `object`     | No       | —           |
| `sender`       | `object`     | Yes      | —           |

<AccordionGroup>
  <Accordion title="thread full type">
    ```ts theme={null}
    {
      node_id: string,
      comments: {
        url: string,
        pull_request_review_id?: number | null,
        id: number,
        node_id: string,
        diff_hunk: string,
        path: string,
        position?: number | null,
        original_position?: number | null,
        commit_id: string,
        original_commit_id: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body: string,
        created_at: string,
        updated_at: string,
        html_url: string,
        pull_request_url: string,
        author_association: string
      }[]
    }
    ```
  </Accordion>

  <Accordion title="pull_request full type">
    ```ts theme={null}
    {
      url: string,
      id: number,
      node_id: string,
      html_url: string,
      diff_url: string,
      patch_url: string,
      issue_url: string,
      number: number,
      state: open | closed,
      locked: boolean,
      title: string,
      user: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      created_at: string,
      updated_at: string,
      closed_at?: string | null,
      merged_at?: string | null,
      merge_commit_sha?: string | null,
      assignee?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      assignees: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }[],
      draft?: boolean,
      merged?: boolean | null,
      mergeable?: boolean | null,
      comments: number,
      review_comments: number,
      commits: number,
      additions: number,
      deletions: number,
      changed_files: number,
      active_lock_reason?: string | null,
      merged_by?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unresolved,
      thread: {
        node_id: string,
        comments: {
          url: string,
          pull_request_review_id?: number | null,
          id: number,
          node_id: string,
          diff_hunk: string,
          path: string,
          position?: number | null,
          original_position?: number | null,
          commit_id: string,
          original_commit_id: string,
          user: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          },
          body: string,
          created_at: string,
          updated_at: string,
          html_url: string,
          pull_request_url: string,
          author_association: string
        }[]
      },
      pull_request: {
        url: string,
        id: number,
        node_id: string,
        html_url: string,
        diff_url: string,
        patch_url: string,
        issue_url: string,
        number: number,
        state: open | closed,
        locked: boolean,
        title: string,
        user: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        created_at: string,
        updated_at: string,
        closed_at?: string | null,
        merged_at?: string | null,
        merge_commit_sha?: string | null,
        assignee?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        assignees: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        }[],
        draft?: boolean,
        merged?: boolean | null,
        mergeable?: boolean | null,
        comments: number,
        review_comments: number,
        commits: number,
        additions: number,
        deletions: number,
        changed_files: number,
        active_lock_reason?: string | null,
        merged_by?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        pullRequestReviewThread: {
            unresolved: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Push

### Push

`push`

Commits were pushed to a branch

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `ref`          | `string`   | Yes      | —           |
| `before`       | `string`   | Yes      | —           |
| `after`        | `string`   | Yes      | —           |
| `created`      | `boolean`  | Yes      | —           |
| `deleted`      | `boolean`  | Yes      | —           |
| `forced`       | `boolean`  | Yes      | —           |
| `base_ref`     | `string`   | No       | —           |
| `compare`      | `string`   | Yes      | —           |
| `commits`      | `object[]` | Yes      | —           |
| `head_commit`  | `object`   | No       | —           |
| `repository`   | `object`   | Yes      | —           |
| `pusher`       | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="commits full type">
    ```ts theme={null}
    {
      id: string,
      tree_id: string,
      distinct: boolean,
      message: string,
      timestamp: string,
      url: string,
      author: {
        name: string,
        email?: string | null,
        username?: string,
        date?: string
      },
      committer: {
        name: string,
        email?: string | null,
        username?: string,
        date?: string
      },
      added: string[],
      modified: string[],
      removed: string[]
    }[]
    ```
  </Accordion>

  <Accordion title="head_commit full type">
    ```ts theme={null}
    {
      id: string,
      tree_id: string,
      distinct: boolean,
      message: string,
      timestamp: string,
      url: string,
      author: {
        name: string,
        email?: string | null,
        username?: string,
        date?: string
      },
      committer: {
        name: string,
        email?: string | null,
        username?: string,
        date?: string
      },
      added: string[],
      modified: string[],
      removed: string[]
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="pusher full type">
    ```ts theme={null}
    {
      name: string,
      email?: string | null,
      username?: string,
      date?: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      ref: string,
      before: string,
      after: string,
      created: boolean,
      deleted: boolean,
      forced: boolean,
      base_ref?: string | null,
      compare: string,
      commits: {
        id: string,
        tree_id: string,
        distinct: boolean,
        message: string,
        timestamp: string,
        url: string,
        author: {
          name: string,
          email?: string | null,
          username?: string,
          date?: string
        },
        committer: {
          name: string,
          email?: string | null,
          username?: string,
          date?: string
        },
        added: string[],
        modified: string[],
        removed: string[]
      }[],
      head_commit?: {
        id: string,
        tree_id: string,
        distinct: boolean,
        message: string,
        timestamp: string,
        url: string,
        author: {
          name: string,
          email?: string | null,
          username?: string,
          date?: string
        },
        committer: {
          name: string,
          email?: string | null,
          username?: string,
          date?: string
        },
        added: string[],
        modified: string[],
        removed: string[]
      } | null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      pusher: {
        name: string,
        email?: string | null,
        username?: string,
        date?: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        push: {
            before(ctx, args) {
                return { ctx, args };
            },
            after(ctx, response) {
            },
        },
    },
})
```

***

## Release

### Created

`release.created`

A release draft was saved

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `release`      | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="release full type">
    ```ts theme={null}
    {
      url: string,
      assets_url: string,
      upload_url: string,
      html_url: string,
      id: number,
      node_id: string,
      tag_name: string,
      target_commitish: string,
      name?: string | null,
      draft: boolean,
      prerelease: boolean,
      created_at: string,
      published_at?: string | null,
      author: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      tarball_url?: string | null,
      zipball_url?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      release: {
        url: string,
        assets_url: string,
        upload_url: string,
        html_url: string,
        id: number,
        node_id: string,
        tag_name: string,
        target_commitish: string,
        name?: string | null,
        draft: boolean,
        prerelease: boolean,
        created_at: string,
        published_at?: string | null,
        author: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        tarball_url?: string | null,
        zipball_url?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        release: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`release.deleted`

A release was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `release`      | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="release full type">
    ```ts theme={null}
    {
      url: string,
      assets_url: string,
      upload_url: string,
      html_url: string,
      id: number,
      node_id: string,
      tag_name: string,
      target_commitish: string,
      name?: string | null,
      draft: boolean,
      prerelease: boolean,
      created_at: string,
      published_at?: string | null,
      author: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      tarball_url?: string | null,
      zipball_url?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      release: {
        url: string,
        assets_url: string,
        upload_url: string,
        html_url: string,
        id: number,
        node_id: string,
        tag_name: string,
        target_commitish: string,
        name?: string | null,
        draft: boolean,
        prerelease: boolean,
        created_at: string,
        published_at?: string | null,
        author: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        tarball_url?: string | null,
        zipball_url?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        release: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Edited

`release.edited`

A release was edited

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `edited` | Yes      | —           |
| `release`      | `object` | Yes      | —           |
| `changes`      | `object` | No       | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="release full type">
    ```ts theme={null}
    {
      url: string,
      assets_url: string,
      upload_url: string,
      html_url: string,
      id: number,
      node_id: string,
      tag_name: string,
      target_commitish: string,
      name?: string | null,
      draft: boolean,
      prerelease: boolean,
      created_at: string,
      published_at?: string | null,
      author: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      tarball_url?: string | null,
      zipball_url?: string | null
    }
    ```
  </Accordion>

  <Accordion title="changes full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: edited,
      release: {
        url: string,
        assets_url: string,
        upload_url: string,
        html_url: string,
        id: number,
        node_id: string,
        tag_name: string,
        target_commitish: string,
        name?: string | null,
        draft: boolean,
        prerelease: boolean,
        created_at: string,
        published_at?: string | null,
        author: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        tarball_url?: string | null,
        zipball_url?: string | null
      },
      changes?: {
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        release: {
            edited: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Prereleased

`release.prereleased`

A pre-release was published

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `prereleased` | Yes      | —           |
| `release`      | `object`      | Yes      | —           |
| `repository`   | `object`      | Yes      | —           |
| `sender`       | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |

<AccordionGroup>
  <Accordion title="release full type">
    ```ts theme={null}
    {
      url: string,
      assets_url: string,
      upload_url: string,
      html_url: string,
      id: number,
      node_id: string,
      tag_name: string,
      target_commitish: string,
      name?: string | null,
      draft: boolean,
      prerelease: boolean,
      created_at: string,
      published_at?: string | null,
      author: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      tarball_url?: string | null,
      zipball_url?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: prereleased,
      release: {
        url: string,
        assets_url: string,
        upload_url: string,
        html_url: string,
        id: number,
        node_id: string,
        tag_name: string,
        target_commitish: string,
        name?: string | null,
        draft: boolean,
        prerelease: boolean,
        created_at: string,
        published_at?: string | null,
        author: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        tarball_url?: string | null,
        zipball_url?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        release: {
            prereleased: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Published

`release.published`

A release was published

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `published` | Yes      | —           |
| `release`      | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="release full type">
    ```ts theme={null}
    {
      url: string,
      assets_url: string,
      upload_url: string,
      html_url: string,
      id: number,
      node_id: string,
      tag_name: string,
      target_commitish: string,
      name?: string | null,
      draft: boolean,
      prerelease: boolean,
      created_at: string,
      published_at?: string | null,
      author: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      tarball_url?: string | null,
      zipball_url?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: published,
      release: {
        url: string,
        assets_url: string,
        upload_url: string,
        html_url: string,
        id: number,
        node_id: string,
        tag_name: string,
        target_commitish: string,
        name?: string | null,
        draft: boolean,
        prerelease: boolean,
        created_at: string,
        published_at?: string | null,
        author: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        tarball_url?: string | null,
        zipball_url?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        release: {
            published: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Released

`release.released`

A release was released

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `released` | Yes      | —           |
| `release`      | `object`   | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="release full type">
    ```ts theme={null}
    {
      url: string,
      assets_url: string,
      upload_url: string,
      html_url: string,
      id: number,
      node_id: string,
      tag_name: string,
      target_commitish: string,
      name?: string | null,
      draft: boolean,
      prerelease: boolean,
      created_at: string,
      published_at?: string | null,
      author: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      tarball_url?: string | null,
      zipball_url?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: released,
      release: {
        url: string,
        assets_url: string,
        upload_url: string,
        html_url: string,
        id: number,
        node_id: string,
        tag_name: string,
        target_commitish: string,
        name?: string | null,
        draft: boolean,
        prerelease: boolean,
        created_at: string,
        published_at?: string | null,
        author: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        tarball_url?: string | null,
        zipball_url?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        release: {
            released: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unpublished

`release.unpublished`

A release was unpublished

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `unpublished` | Yes      | —           |
| `release`      | `object`      | Yes      | —           |
| `repository`   | `object`      | Yes      | —           |
| `sender`       | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |

<AccordionGroup>
  <Accordion title="release full type">
    ```ts theme={null}
    {
      url: string,
      assets_url: string,
      upload_url: string,
      html_url: string,
      id: number,
      node_id: string,
      tag_name: string,
      target_commitish: string,
      name?: string | null,
      draft: boolean,
      prerelease: boolean,
      created_at: string,
      published_at?: string | null,
      author: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      body?: string | null,
      tarball_url?: string | null,
      zipball_url?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unpublished,
      release: {
        url: string,
        assets_url: string,
        upload_url: string,
        html_url: string,
        id: number,
        node_id: string,
        tag_name: string,
        target_commitish: string,
        name?: string | null,
        draft: boolean,
        prerelease: boolean,
        created_at: string,
        published_at?: string | null,
        author: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        body?: string | null,
        tarball_url?: string | null,
        zipball_url?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        release: {
            unpublished: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Repository

### Archived

`repository.archived`

A repository was archived

**Payload**

| Name           | Type       | Required | Description |
| -------------- | ---------- | -------- | ----------- |
| `action`       | `archived` | Yes      | —           |
| `repository`   | `object`   | Yes      | —           |
| `sender`       | `object`   | Yes      | —           |
| `installation` | `object`   | No       | —           |
| `organization` | `object`   | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: archived,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            archived: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Created

`repository.created`

A repository was created

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`repository.deleted`

A repository was deleted

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Privatized

`repository.privatized`

A repository was made private

**Payload**

| Name           | Type         | Required | Description |
| -------------- | ------------ | -------- | ----------- |
| `action`       | `privatized` | Yes      | —           |
| `repository`   | `object`     | Yes      | —           |
| `sender`       | `object`     | Yes      | —           |
| `installation` | `object`     | No       | —           |
| `organization` | `object`     | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: privatized,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            privatized: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Publicized

`repository.publicized`

A repository was made public

**Payload**

| Name           | Type         | Required | Description |
| -------------- | ------------ | -------- | ----------- |
| `action`       | `publicized` | Yes      | —           |
| `repository`   | `object`     | Yes      | —           |
| `sender`       | `object`     | Yes      | —           |
| `installation` | `object`     | No       | —           |
| `organization` | `object`     | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: publicized,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            publicized: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Renamed

`repository.renamed`

A repository was renamed

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `renamed` | Yes      | —           |
| `changes`      | `object`  | No       | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="changes full type">
    ```ts theme={null}
    {
      repository?: {
        name: {
          from: string
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: renamed,
      changes?: {
        repository?: {
          name: {
            from: string
          }
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            renamed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Transferred

`repository.transferred`

A repository was transferred

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `transferred` | Yes      | —           |
| `changes`      | `object`      | No       | —           |
| `repository`   | `object`      | Yes      | —           |
| `sender`       | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |

<AccordionGroup>
  <Accordion title="changes full type">
    ```ts theme={null}
    {
      owner?: {
        from: {
          user?: {
            login: string,
            id: number,
            node_id: string,
            name?: string,
            email?: string | null,
            avatar_url: string,
            gravatar_id: string,
            url: string,
            html_url: string,
            followers_url: string,
            following_url: string,
            gists_url: string,
            starred_url: string,
            subscriptions_url: string,
            organizations_url: string,
            repos_url: string,
            events_url: string,
            received_events_url: string,
            type: Bot | User | Organization,
            site_admin: boolean
          },
          organization?: {
            login: string,
            id: number,
            node_id: string,
            url: string,
            html_url?: string,
            repos_url: string,
            events_url: string,
            hooks_url: string,
            issues_url: string,
            members_url: string,
            public_members_url: string,
            avatar_url: string,
            description?: string | null
          }
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: transferred,
      changes?: {
        owner?: {
          from: {
            user?: {
              login: string,
              id: number,
              node_id: string,
              name?: string,
              email?: string | null,
              avatar_url: string,
              gravatar_id: string,
              url: string,
              html_url: string,
              followers_url: string,
              following_url: string,
              gists_url: string,
              starred_url: string,
              subscriptions_url: string,
              organizations_url: string,
              repos_url: string,
              events_url: string,
              received_events_url: string,
              type: Bot | User | Organization,
              site_admin: boolean
            },
            organization?: {
              login: string,
              id: number,
              node_id: string,
              url: string,
              html_url?: string,
              repos_url: string,
              events_url: string,
              hooks_url: string,
              issues_url: string,
              members_url: string,
              public_members_url: string,
              avatar_url: string,
              description?: string | null
            }
          }
        }
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            transferred: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Unarchived

`repository.unarchived`

A repository was unarchived

**Payload**

| Name           | Type         | Required | Description |
| -------------- | ------------ | -------- | ----------- |
| `action`       | `unarchived` | Yes      | —           |
| `repository`   | `object`     | Yes      | —           |
| `sender`       | `object`     | Yes      | —           |
| `installation` | `object`     | No       | —           |
| `organization` | `object`     | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: unarchived,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        repository: {
            unarchived: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Star

### Created

`star.created`

A repository was starred

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `created` | Yes      | —           |
| `starred_at`   | `string`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `organization` | `object`  | No       | —           |
| `installation` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: created,
      starred_at: string,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      installation?: {
        id: number,
        node_id: string
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        star: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`star.deleted`

A star was removed from a repository

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `deleted` | Yes      | —           |
| `starred_at`   | `null`    | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `organization` | `object`  | No       | —           |
| `installation` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: deleted,
      starred_at: null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      },
      installation?: {
        id: number,
        node_id: string
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        star: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Tag

### Created

`tag.created`

A tag was created

**Payload**

| Name            | Type     | Required | Description |
| --------------- | -------- | -------- | ----------- |
| `ref`           | `string` | Yes      | —           |
| `ref_type`      | `tag`    | Yes      | —           |
| `master_branch` | `string` | Yes      | —           |
| `description`   | `string` | No       | —           |
| `pusher_type`   | `string` | Yes      | —           |
| `repository`    | `object` | Yes      | —           |
| `sender`        | `object` | Yes      | —           |
| `installation`  | `object` | No       | —           |
| `organization`  | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      ref: string,
      ref_type: tag,
      master_branch: string,
      description?: string | null,
      pusher_type: string,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        tag: {
            created: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Deleted

`tag.deleted`

A tag was deleted

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `ref`          | `string` | Yes      | —           |
| `ref_type`     | `tag`    | Yes      | —           |
| `pusher_type`  | `string` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      ref: string,
      ref_type: tag,
      pusher_type: string,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        tag: {
            deleted: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Watch

### Started

`watch.started`

A user started watching a repository

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `started` | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: started,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        watch: {
            started: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Workflow Dispatch

### Dispatched

`workflowDispatch.dispatched`

A workflow was manually triggered

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `inputs`       | `object` | No       | —           |
| `ref`          | `string` | Yes      | —           |
| `workflow`     | `string` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="inputs full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      inputs?: {
      } | null,
      ref: string,
      workflow: string,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowDispatch: {
            dispatched: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Workflow Job

### Completed

`workflowJob.completed`

A workflow job completed

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `completed` | Yes      | —           |
| `workflow_job` | `object`    | Yes      | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="workflow_job full type">
    ```ts theme={null}
    {
      id: number,
      run_id: number,
      run_url: string,
      node_id: string,
      head_sha: string,
      url: string,
      html_url: string,
      status: queued | in_progress | completed | waiting,
      conclusion?: string | null,
      started_at: string,
      completed_at?: string | null,
      name: string,
      steps: {
        name: string,
        status: string,
        conclusion?: string | null,
        number: number,
        started_at?: string | null,
        completed_at?: string | null
      }[],
      runner_id?: number | null,
      runner_name?: string | null,
      runner_group_id?: number | null,
      runner_group_name?: string | null,
      workflow_name?: string | null,
      head_branch?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: completed,
      workflow_job: {
        id: number,
        run_id: number,
        run_url: string,
        node_id: string,
        head_sha: string,
        url: string,
        html_url: string,
        status: queued | in_progress | completed | waiting,
        conclusion?: string | null,
        started_at: string,
        completed_at?: string | null,
        name: string,
        steps: {
          name: string,
          status: string,
          conclusion?: string | null,
          number: number,
          started_at?: string | null,
          completed_at?: string | null
        }[],
        runner_id?: number | null,
        runner_name?: string | null,
        runner_group_id?: number | null,
        runner_group_name?: string | null,
        workflow_name?: string | null,
        head_branch?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowJob: {
            completed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### In Progress

`workflowJob.inProgress`

A workflow job started

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `in_progress` | Yes      | —           |
| `workflow_job` | `object`      | Yes      | —           |
| `repository`   | `object`      | Yes      | —           |
| `sender`       | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |

<AccordionGroup>
  <Accordion title="workflow_job full type">
    ```ts theme={null}
    {
      id: number,
      run_id: number,
      run_url: string,
      node_id: string,
      head_sha: string,
      url: string,
      html_url: string,
      status: queued | in_progress | completed | waiting,
      conclusion?: string | null,
      started_at: string,
      completed_at?: string | null,
      name: string,
      steps: {
        name: string,
        status: string,
        conclusion?: string | null,
        number: number,
        started_at?: string | null,
        completed_at?: string | null
      }[],
      runner_id?: number | null,
      runner_name?: string | null,
      runner_group_id?: number | null,
      runner_group_name?: string | null,
      workflow_name?: string | null,
      head_branch?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: in_progress,
      workflow_job: {
        id: number,
        run_id: number,
        run_url: string,
        node_id: string,
        head_sha: string,
        url: string,
        html_url: string,
        status: queued | in_progress | completed | waiting,
        conclusion?: string | null,
        started_at: string,
        completed_at?: string | null,
        name: string,
        steps: {
          name: string,
          status: string,
          conclusion?: string | null,
          number: number,
          started_at?: string | null,
          completed_at?: string | null
        }[],
        runner_id?: number | null,
        runner_name?: string | null,
        runner_group_id?: number | null,
        runner_group_name?: string | null,
        workflow_name?: string | null,
        head_branch?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowJob: {
            inProgress: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Queued

`workflowJob.queued`

A workflow job was queued

**Payload**

| Name           | Type     | Required | Description |
| -------------- | -------- | -------- | ----------- |
| `action`       | `queued` | Yes      | —           |
| `workflow_job` | `object` | Yes      | —           |
| `repository`   | `object` | Yes      | —           |
| `sender`       | `object` | Yes      | —           |
| `installation` | `object` | No       | —           |
| `organization` | `object` | No       | —           |

<AccordionGroup>
  <Accordion title="workflow_job full type">
    ```ts theme={null}
    {
      id: number,
      run_id: number,
      run_url: string,
      node_id: string,
      head_sha: string,
      url: string,
      html_url: string,
      status: queued | in_progress | completed | waiting,
      conclusion?: string | null,
      started_at: string,
      completed_at?: string | null,
      name: string,
      steps: {
        name: string,
        status: string,
        conclusion?: string | null,
        number: number,
        started_at?: string | null,
        completed_at?: string | null
      }[],
      runner_id?: number | null,
      runner_name?: string | null,
      runner_group_id?: number | null,
      runner_group_name?: string | null,
      workflow_name?: string | null,
      head_branch?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: queued,
      workflow_job: {
        id: number,
        run_id: number,
        run_url: string,
        node_id: string,
        head_sha: string,
        url: string,
        html_url: string,
        status: queued | in_progress | completed | waiting,
        conclusion?: string | null,
        started_at: string,
        completed_at?: string | null,
        name: string,
        steps: {
          name: string,
          status: string,
          conclusion?: string | null,
          number: number,
          started_at?: string | null,
          completed_at?: string | null
        }[],
        runner_id?: number | null,
        runner_name?: string | null,
        runner_group_id?: number | null,
        runner_group_name?: string | null,
        workflow_name?: string | null,
        head_branch?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowJob: {
            queued: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Waiting

`workflowJob.waiting`

A workflow job is waiting for approval

**Payload**

| Name           | Type      | Required | Description |
| -------------- | --------- | -------- | ----------- |
| `action`       | `waiting` | Yes      | —           |
| `workflow_job` | `object`  | Yes      | —           |
| `repository`   | `object`  | Yes      | —           |
| `sender`       | `object`  | Yes      | —           |
| `installation` | `object`  | No       | —           |
| `organization` | `object`  | No       | —           |

<AccordionGroup>
  <Accordion title="workflow_job full type">
    ```ts theme={null}
    {
      id: number,
      run_id: number,
      run_url: string,
      node_id: string,
      head_sha: string,
      url: string,
      html_url: string,
      status: queued | in_progress | completed | waiting,
      conclusion?: string | null,
      started_at: string,
      completed_at?: string | null,
      name: string,
      steps: {
        name: string,
        status: string,
        conclusion?: string | null,
        number: number,
        started_at?: string | null,
        completed_at?: string | null
      }[],
      runner_id?: number | null,
      runner_name?: string | null,
      runner_group_id?: number | null,
      runner_group_name?: string | null,
      workflow_name?: string | null,
      head_branch?: string | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: waiting,
      workflow_job: {
        id: number,
        run_id: number,
        run_url: string,
        node_id: string,
        head_sha: string,
        url: string,
        html_url: string,
        status: queued | in_progress | completed | waiting,
        conclusion?: string | null,
        started_at: string,
        completed_at?: string | null,
        name: string,
        steps: {
          name: string,
          status: string,
          conclusion?: string | null,
          number: number,
          started_at?: string | null,
          completed_at?: string | null
        }[],
        runner_id?: number | null,
        runner_name?: string | null,
        runner_group_id?: number | null,
        runner_group_name?: string | null,
        workflow_name?: string | null,
        head_branch?: string | null
      },
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowJob: {
            waiting: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

## Workflow Run

### Completed

`workflowRun.completed`

A workflow run completed

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `completed` | Yes      | —           |
| `workflow_run` | `object`    | Yes      | —           |
| `workflow`     | `any`       | No       | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="workflow_run full type">
    ```ts theme={null}
    {
      id: number,
      name?: string | null,
      node_id: string,
      head_branch?: string | null,
      head_sha: string,
      run_number: number,
      event: string,
      status?: string | null,
      conclusion?: string | null,
      workflow_id: number,
      url: string,
      html_url: string,
      pull_requests: any[],
      created_at: string,
      updated_at: string,
      run_attempt?: number,
      run_started_at?: string,
      triggering_actor?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      actor?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: completed,
      workflow_run: {
        id: number,
        name?: string | null,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        run_number: number,
        event: string,
        status?: string | null,
        conclusion?: string | null,
        workflow_id: number,
        url: string,
        html_url: string,
        pull_requests: any[],
        created_at: string,
        updated_at: string,
        run_attempt?: number,
        run_started_at?: string,
        triggering_actor?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        actor?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      workflow?: any | null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowRun: {
            completed: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### In Progress

`workflowRun.inProgress`

A workflow run started

**Payload**

| Name           | Type          | Required | Description |
| -------------- | ------------- | -------- | ----------- |
| `action`       | `in_progress` | Yes      | —           |
| `workflow_run` | `object`      | Yes      | —           |
| `workflow`     | `any`         | No       | —           |
| `repository`   | `object`      | Yes      | —           |
| `sender`       | `object`      | Yes      | —           |
| `installation` | `object`      | No       | —           |
| `organization` | `object`      | No       | —           |

<AccordionGroup>
  <Accordion title="workflow_run full type">
    ```ts theme={null}
    {
      id: number,
      name?: string | null,
      node_id: string,
      head_branch?: string | null,
      head_sha: string,
      run_number: number,
      event: string,
      status?: string | null,
      conclusion?: string | null,
      workflow_id: number,
      url: string,
      html_url: string,
      pull_requests: any[],
      created_at: string,
      updated_at: string,
      run_attempt?: number,
      run_started_at?: string,
      triggering_actor?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      actor?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: in_progress,
      workflow_run: {
        id: number,
        name?: string | null,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        run_number: number,
        event: string,
        status?: string | null,
        conclusion?: string | null,
        workflow_id: number,
        url: string,
        html_url: string,
        pull_requests: any[],
        created_at: string,
        updated_at: string,
        run_attempt?: number,
        run_started_at?: string,
        triggering_actor?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        actor?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      workflow?: any | null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowRun: {
            inProgress: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***

### Requested

`workflowRun.requested`

A workflow run was requested

**Payload**

| Name           | Type        | Required | Description |
| -------------- | ----------- | -------- | ----------- |
| `action`       | `requested` | Yes      | —           |
| `workflow_run` | `object`    | Yes      | —           |
| `workflow`     | `any`       | No       | —           |
| `repository`   | `object`    | Yes      | —           |
| `sender`       | `object`    | Yes      | —           |
| `installation` | `object`    | No       | —           |
| `organization` | `object`    | No       | —           |

<AccordionGroup>
  <Accordion title="workflow_run full type">
    ```ts theme={null}
    {
      id: number,
      name?: string | null,
      node_id: string,
      head_branch?: string | null,
      head_sha: string,
      run_number: number,
      event: string,
      status?: string | null,
      conclusion?: string | null,
      workflow_id: number,
      url: string,
      html_url: string,
      pull_requests: any[],
      created_at: string,
      updated_at: string,
      run_attempt?: number,
      run_started_at?: string,
      triggering_actor?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null,
      actor?: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      } | null
    }
    ```
  </Accordion>

  <Accordion title="repository full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string,
      name: string,
      full_name: string,
      private: boolean,
      owner: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      html_url: string,
      description?: string | null,
      fork: boolean,
      url: string,
      created_at: number | string,
      updated_at: string,
      pushed_at?: number | string | null,
      default_branch: string
    }
    ```
  </Accordion>

  <Accordion title="sender full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      name?: string,
      email?: string | null,
      avatar_url: string,
      gravatar_id: string,
      url: string,
      html_url: string,
      followers_url: string,
      following_url: string,
      gists_url: string,
      starred_url: string,
      subscriptions_url: string,
      organizations_url: string,
      repos_url: string,
      events_url: string,
      received_events_url: string,
      type: Bot | User | Organization,
      site_admin: boolean
    }
    ```
  </Accordion>

  <Accordion title="installation full type">
    ```ts theme={null}
    {
      id: number,
      node_id: string
    }
    ```
  </Accordion>

  <Accordion title="organization full type">
    ```ts theme={null}
    {
      login: string,
      id: number,
      node_id: string,
      url: string,
      html_url?: string,
      repos_url: string,
      events_url: string,
      hooks_url: string,
      issues_url: string,
      members_url: string,
      public_members_url: string,
      avatar_url: string,
      description?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="Response data full type">
    ```ts theme={null}
    {
      action: requested,
      workflow_run: {
        id: number,
        name?: string | null,
        node_id: string,
        head_branch?: string | null,
        head_sha: string,
        run_number: number,
        event: string,
        status?: string | null,
        conclusion?: string | null,
        workflow_id: number,
        url: string,
        html_url: string,
        pull_requests: any[],
        created_at: string,
        updated_at: string,
        run_attempt?: number,
        run_started_at?: string,
        triggering_actor?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null,
        actor?: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        } | null
      },
      workflow?: any | null,
      repository: {
        id: number,
        node_id: string,
        name: string,
        full_name: string,
        private: boolean,
        owner: {
          login: string,
          id: number,
          node_id: string,
          name?: string,
          email?: string | null,
          avatar_url: string,
          gravatar_id: string,
          url: string,
          html_url: string,
          followers_url: string,
          following_url: string,
          gists_url: string,
          starred_url: string,
          subscriptions_url: string,
          organizations_url: string,
          repos_url: string,
          events_url: string,
          received_events_url: string,
          type: Bot | User | Organization,
          site_admin: boolean
        },
        html_url: string,
        description?: string | null,
        fork: boolean,
        url: string,
        created_at: number | string,
        updated_at: string,
        pushed_at?: number | string | null,
        default_branch: string
      },
      sender: {
        login: string,
        id: number,
        node_id: string,
        name?: string,
        email?: string | null,
        avatar_url: string,
        gravatar_id: string,
        url: string,
        html_url: string,
        followers_url: string,
        following_url: string,
        gists_url: string,
        starred_url: string,
        subscriptions_url: string,
        organizations_url: string,
        repos_url: string,
        events_url: string,
        received_events_url: string,
        type: Bot | User | Organization,
        site_admin: boolean
      },
      installation?: {
        id: number,
        node_id: string
      },
      organization?: {
        login: string,
        id: number,
        node_id: string,
        url: string,
        html_url?: string,
        repos_url: string,
        events_url: string,
        hooks_url: string,
        issues_url: string,
        members_url: string,
        public_members_url: string,
        avatar_url: string,
        description?: string | null
      }
    }
    ```
  </Accordion>
</AccordionGroup>

**`webhookHooks` example**

```ts theme={null}
github({
    webhookHooks: {
        workflowRun: {
            requested: {
                before(ctx, args) {
                    return { ctx, args };
                },
                after(ctx, response) {
                },
            },
        },
    },
})
```

***
