Event types and payloads

The Events API can return different types of events triggered by activity on GitHub. Each event response contains shared properties, but has a unique payload object determined by its event type. The Event object common properties describes the properties shared by all events, and each event type describes the payload properties that are unique to the specific event.

Enterprise accounts are available with GitHub Enterprise Cloud and may be connected to GitHub Enterprise Server. For more information, see About enterprise accounts in the GitHub Help documentation.

Event object common properties

The event objects returned from the Events API endpoints have the same structure.

Event API attribute name Description
id Unique identifier for the event.
type The type of event. Events uses PascalCase for the name.
actor The user that triggered the event.
actor.id The unique identifier for the actor.
actor.login The username of the actor.
actor.display_login The specific display format of the username.
actor.gravatar_id The unique indentifier of the Gravatar profile for the actor.
actor.url The REST API URL used to retrieve the user object, which includes additional user information.
actor.avatar_url The URL of the actor's profile image.
repo The repository object where the event occurred.
repo.id The unique identifier of the repository.
repo.name The name of the repository, which includes the owner and repository name. For example, octocat/hello-world is the name of the hello-world repository owned by the octocat user account.
repo.url The REST API URL used to retrive the repository object, which includes additional repository information.
payload The event payload object is unique to the event type. See the event type below for the event API payload object.

Example WatchEvent event object

This example shows the format of the WatchEvent response when using the Events API.

Status: 200 OK
Link: <https://api.github.com/resource?page=2>; rel="next",
      <https://api.github.com/resource?page=5>; rel="last"
[
  {
    "type": "WatchEvent",
    "public": true,
    "payload": {
    },
    "repo": {
      "id": 3,
      "name": "octocat/Hello-World",
      "url": "https://api.github.com/repos/octocat/Hello-World"
    },
    "actor": {
      "id": 1,
      "login": "octocat",
      "gravatar_id": "",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "url": "https://api.github.com/users/octocat"
    },
    "org": {
      "id": 1,
      "login": "github",
      "gravatar_id": "",
      "url": "https://api.github.com/orgs/github",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif"
    },
    "created_at": "2011-09-06T17:26:27Z",
    "id": "12345"
  }
]

CommitCommentEvent

A commit comment is created. The type of activity is specified in the action property of the payload object. For more information, see the "commit comment" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action performed. Can be created.
comment object The commit comment resource.

CreateEvent

A Git branch or tag is created. For more information, see the "Git data" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
ref string The git ref resource.
ref_type string The type of Git ref object created in the repository. Can be either branch or tag.
master_branch string The name of the repository's default branch (usually master).
description string The repository's current description.

DeleteEvent

A Git branch or tag is deleted. For more information, see the "Git data" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
ref string The git ref resource.
ref_type string The type of Git ref oject deleted in the repository. Can be branch or tag.

ForkEvent

A user forks a repository. For more information, see the "forks" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
forkee object The created repository resource.

GollumEvent

A wiki page is created or updated. For more information, see the "About wikis" in the GitHub Help documentation.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
pages array The pages that were updated.
pages[][page_name] string The name of the page.
pages[][title] string The current page title.
pages[][action] string The action that was performed on the page. Can be created or edited.
pages[][sha] string The latest commit SHA of the page.
pages[][html_url] string Points to the HTML wiki page.

IssueCommentEvent

Activity related to an issue comment. The type of activity is specified in the action property of the payload object. For more information, see the "issue comments" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action that was performed on the comment. Can be one of created, edited, or deleted.
changes object The changes to the comment if the action was edited.
changes[body][from] string The previous version of the body if the action was edited.
issue object The issue the comment belongs to.
comment object The comment itself.

IssuesEvent

Activity related to an issue. The type of activity is specified in the action property of the payload object. For more information, see the "issues" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action that was performed. Can be one of opened, closed, reopened, assigned, unassigned, labeled, or unlabeled.
issue object The issue itself.
changes object The changes to the issue if the action was edited.
changes[title][from] string The previous version of the title if the action was edited.
changes[body][from] string The previous version of the body if the action was edited.
assignee object The optional user who was assigned or unassigned from the issue.
label object The optional label that was added or removed from the issue.

MemberEvent

Activity related to repository collaborators. The type of activity is specified in the action property of the payload object. For more information, see the "collaborators" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action that was performed. Can be added to indicate a user accepted an invitation to a repository.
member object The user that was added.
changes object The changes to the collaborator permissions if the action was edited.
changes[old_permission][from] string The previous permissions of the collaborator if the action was edited.

PublicEvent

When a private repository is made public. Without a doubt: the best GitHub event.

Event payload object

This event returns an empty payload object.

PullRequestEvent

Activity related to pull requests. The type of activity is specified in the action property of the payload object. For more information, see the "pull requests" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action that was performed. Can be one of opened, closed, reopened, assigned, unassigned, review_requested, review_request_removed, labeled, unlabeled, and synchronize.
number integer The pull request number.
changes object The changes to the comment if the action was edited.
changes[title][from] string The previous version of the title if the action was edited.
changes[body][from] string The previous version of the body if the action was edited.
pull_request object The pull request itself.

PullRequestReviewCommentEvent

Activity related to pull request review comments in the pull request's unified diff. The type of activity is specified in the action property of the payload object. For more information, see the "pull request review comments" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action that was performed on the comment. Can be created.
changes object The changes to the comment if the action was edited.
changes[body][from] string The previous version of the body if the action was edited.
pull_request object The pull request the comment belongs to.
comment object The comment itself.

PushEvent

One or more commits are pushed to a repository branch or tag.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Key Type Description
push_id integer Unique identifier for the push.
size integer The number of commits in the push.
distinct_size integer The number of distinct commits in the push.
ref string The full git ref that was pushed. Example: refs/heads/master.
head string The SHA of the most recent commit on ref after the push.
before string The SHA of the most recent commit on ref before the push.
commits array An array of commit objects describing the pushed commits. (The array includes a maximum of 20 commits. If necessary, you can use the Commits API to fetch additional commits. This limit is applied to timeline events only and isn't applied to webhook deliveries.)
commits[][sha] string The SHA of the commit.
commits[][message] string The commit message.
commits[][author] object The git author of the commit.
commits[][author][name] string The git author's name.
commits[][author][email] string The git author's email address.
commits[][url] url URL that points to the commit API resource.
commits[][distinct] boolean Whether this commit is distinct from any that have been pushed before.

ReleaseEvent

Activity related to a release. The type of activity is specified in the action property of the payload object. For more information, see the "releases" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action that was performed. Can be published.
changes[body][from] string The previous version of the body if the action was edited.
changes[name][from] string The previous version of the name if the action was edited.
release object The release object.

SponsorshipEvent

Activity related to a sponsorship listing. The type of activity is specified in the action property of the payload object. For more information, see "About GitHub Sponsors" in the GitHub Help documentation.

Event payload object

Key Type Description
action string The action that was performed. This can be created.
effective_date string The pending_cancellation and pending_tier_change event types will include the date the cancellation or tier change will take effect.
changes[tier][from] object The tier_changed and pending_tier_change will include the original tier before the change or pending change. For more information, see the pending tier change payload.
changes[privacy_level][from] string The edited event types include the details about the change when someone edits a sponsorship to change the privacy.

WatchEvent

When someone stars a repository. The type of activity is specified in the action property of the payload object. For more information, see the "starring" REST API.

The event object includes properties that are common for all events. Each event object includes a payload property and the value is unique to each event type. The payload object for this event is described below.

Event payload object

Key Type Description
action string The action that was performed. Currently, can only be started.