{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/webhook-push",
"title": "push event",
"type": "object",
"properties": {
"after": {
"description": "The SHA of the most recent commit on `ref` after the push.",
"type": "string"
},
"base_ref": {
"$ref": "#/components/schemas/webhooks_nullable_string"
},
"before": {
"description": "The SHA of the most recent commit on `ref` before the push.",
"type": "string"
},
"commits": {
"description": "An array of commit objects describing the pushed commits. (Pushed commits are all commits that are included in the `compare` between the `before` commit and the `after` commit.) The array includes a maximum of 2048 commits. If necessary, you can use the [Commits API](https://docs.github.com/[email protected]/rest/commits) to fetch additional commits.",
"type": "array",
"items": {
"title": "Commit",
"type": "object",
"properties": {
"added": {
"description": "An array of files added in the commit. A maximum of 3000 changed files will be reported per commit.",
"type": "array",
"items": {
"type": "string"
}
},
"author": {
"title": "Committer",
"description": "Metaproperties for Git author/committer information.",
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time"
},
"email": {
"type": "string",
"nullable": true,
"format": "email"
},
"name": {
"description": "The git author's name.",
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"email",
"name"
]
},
"committer": {
"title": "Committer",
"description": "Metaproperties for Git author/committer information.",
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time"
},
"email": {
"type": "string",
"nullable": true,
"format": "email"
},
"name": {
"description": "The git author's name.",
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"email",
"name"
]
},
"distinct": {
"description": "Whether this commit is distinct from any that have been pushed before.",
"type": "boolean"
},
"id": {
"type": "string"
},
"message": {
"description": "The commit message.",
"type": "string"
},
"modified": {
"description": "An array of files modified by the commit. A maximum of 3000 changed files will be reported per commit.",
"type": "array",
"items": {
"type": "string"
}
},
"removed": {
"description": "An array of files removed in the commit. A maximum of 3000 changed files will be reported per commit.",
"type": "array",
"items": {
"type": "string"
}
},
"timestamp": {
"description": "The ISO 8601 timestamp of the commit.",
"type": "string",
"format": "date-time"
},
"tree_id": {
"type": "string"
},
"url": {
"description": "URL that points to the commit API resource.",
"type": "string",
"format": "uri"
}
},
"required": [
"id",
"tree_id",
"distinct",
"message",
"timestamp",
"url",
"author",
"committer"
]
}
},
"compare": {
"description": "URL that shows the changes in this `ref` update, from the `before` commit to the `after` commit. For a newly created `ref` that is directly based on the default branch, this is the comparison between the head of the default branch and the `after` commit. Otherwise, this shows all commits until the `after` commit.",
"type": "string"
},
"created": {
"description": "Whether this push created the `ref`.",
"type": "boolean"
},
"deleted": {
"description": "Whether this push deleted the `ref`.",
"type": "boolean"
},
"enterprise": {
"$ref": "#/components/schemas/enterprise-webhooks"
},
"forced": {
"description": "Whether this push was a force push of the `ref`.",
"type": "boolean"
},
"head_commit": {
"title": "Commit",
"type": "object",
"nullable": true,
"properties": {
"added": {
"description": "An array of files added in the commit.",
"type": "array",
"items": {
"type": "string"
}
},
"author": {
"title": "Committer",
"description": "Metaproperties for Git author/committer information.",
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time"
},
"email": {
"type": "string",
"nullable": true,
"format": "email"
},
"name": {
"description": "The git author's name.",
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"email",
"name"
]
},
"committer": {
"title": "Committer",
"description": "Metaproperties for Git author/committer information.",
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time"
},
"email": {
"type": "string",
"nullable": true,
"format": "email"
},
"name": {
"description": "The git author's name.",
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"email",
"name"
]
},
"distinct": {
"description": "Whether this commit is distinct from any that have been pushed before.",
"type": "boolean"
},
"id": {
"type": "string"
},
"message": {
"description": "The commit message.",
"type": "string"
},
"modified": {
"description": "An array of files modified by the commit.",
"type": "array",
"items": {
"type": "string"
}
},
"removed": {
"description": "An array of files removed in the commit.",
"type": "array",
"items": {
"type": "string"
}
},
"timestamp": {
"description": "The ISO 8601 timestamp of the commit.",
"type": "string",
"format": "date-time"
},
"tree_id": {
"type": "string"
},
"url": {
"description": "URL that points to the commit API resource.",
"type": "string",
"format": "uri"
}
},
"required": [
"id",
"tree_id",
"distinct",
"message",
"timestamp",
"url",
"author",
"committer"
]
},
"installation": {
"$ref": "#/components/schemas/simple-installation"
},
"organization": {
"$ref": "#/components/schemas/organization-simple-webhooks"
},
"pusher": {
"title": "Committer",
"description": "Metaproperties for Git author/committer information.",
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date-time"
},
"email": {
"type": "string",
"nullable": true,
"format": "email"
},
"name": {
"description": "The git author's name.",
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"name"
]
},
"ref": {
"description": "The full git ref that was pushed. Example: `refs/heads/main` or `refs/tags/v3.14.1`.",
"type": "string"
},
"repository": {
"title": "Repository",
"description": "A git repository",
"type": "object",
"properties": {
"allow_auto_merge": {
"description": "Whether to allow auto-merge for pull requests.",
"type": "boolean",
"default": false
},
"allow_forking": {
"description": "Whether to allow private forks",
"type": "boolean"
},
"allow_merge_commit": {
"description": "Whether to allow merge commits for pull requests.",
"type": "boolean",
"default": true
},
"allow_rebase_merge": {
"description": "Whether to allow rebase merges for pull requests.",
"type": "boolean",
"default": true
},
"allow_squash_merge": {
"description": "Whether to allow squash merges for pull requests.",
"type": "boolean",
"default": true
},
"allow_update_branch": {
"type": "boolean"
},
"archive_url": {
"type": "string",
"format": "uri-template"
},
"archived": {
"description": "Whether the repository is archived.",
"type": "boolean",
"default": false
},
"assignees_url": {
"type": "string",
"format": "uri-template"
},
"blobs_url": {
"type": "string",
"format": "uri-template"
},
"branches_url": {
"type": "string",
"format": "uri-template"
},
"clone_url": {
"type": "string",
"format": "uri"
},
"collaborators_url": {
"type": "string",
"format": "uri-template"
},
"comments_url": {
"type": "string",
"format": "uri-template"
},
"commits_url": {
"type": "string",
"format": "uri-template"
},
"compare_url": {
"type": "string",
"format": "uri-template"
},
"contents_url": {
"type": "string",
"format": "uri-template"
},
"contributors_url": {
"type": "string",
"format": "uri"
},
"created_at": {
"oneOf": [
{
"type": "integer"
},
{
"type": "string",
"format": "date-time"
}
]
},
"default_branch": {
"description": "The default branch of the repository.",
"type": "string"
},
"delete_branch_on_merge": {
"description": "Whether to delete head branches when pull requests are merged",
"type": "boolean",
"default": false
},
"deployments_url": {
"type": "string",
"format": "uri"
},
"description": {
"type": "string",
"nullable": true
},
"disabled": {
"description": "Returns whether or not this repository is disabled.",
"type": "boolean"
},
"downloads_url": {
"type": "string",
"format": "uri"
},
"events_url": {
"type": "string",
"format": "uri"
},
"fork": {
"type": "boolean"
},
"forks": {
"type": "integer"
},
"forks_count": {
"type": "integer"
},
"forks_url": {
"type": "string",
"format": "uri"
},
"full_name": {
"type": "string"
},
"git_commits_url": {
"type": "string",
"format": "uri-template"
},
"git_refs_url": {
"type": "string",
"format": "uri-template"
},
"git_tags_url": {
"type": "string",
"format": "uri-template"
},
"git_url": {
"type": "string",
"format": "uri"
},
"has_downloads": {
"description": "Whether downloads are enabled.",
"type": "boolean",
"default": true
},
"has_issues": {
"description": "Whether issues are enabled.",
"type": "boolean",
"default": true
},
"has_pages": {
"type": "boolean"
},
"has_projects": {
"description": "Whether projects are enabled.",
"type": "boolean",
"default": true
},
"has_wiki": {
"description": "Whether the wiki is enabled.",
"type": "boolean",
"default": true
},
"has_discussions": {
"description": "Whether discussions are enabled.",
"type": "boolean",
"default": false
},
"homepage": {
"type": "string",
"nullable": true
},
"hooks_url": {
"type": "string",
"format": "uri"
},
"html_url": {
"type": "string",
"format": "uri"
},
"id": {
"description": "Unique identifier of the repository",
"type": "integer",
"format": "int64"
},
"is_template": {
"type": "boolean"
},
"issue_comment_url": {
"type": "string",
"format": "uri-template"
},
"issue_events_url": {
"type": "string",
"format": "uri-template"
},
"issues_url": {
"type": "string",
"format": "uri-template"
},
"keys_url": {
"type": "string",
"format": "uri-template"
},
"labels_url": {
"type": "string",
"format": "uri-template"
},
"language": {
"type": "string",
"nullable": true
},
"languages_url": {
"type": "string",
"format": "uri"
},
"license": {
"title": "License",
"type": "object",
"nullable": true,
"properties": {
"key": {
"type": "string"
},
"name": {
"type": "string"
},
"node_id": {
"type": "string"
},
"spdx_id": {
"type": "string"
},
"url": {
"type": "string",
"nullable": true,
"format": "uri"
}
},
"required": [
"key",
"name",
"spdx_id",
"url",
"node_id"
]
},
"master_branch": {
"type": "string"
},
"merges_url": {
"type": "string",
"format": "uri"
},
"milestones_url": {
"type": "string",
"format": "uri-template"
},
"mirror_url": {
"type": "string",
"nullable": true,
"format": "uri"
},
"name": {
"description": "The name of the repository.",
"type": "string"
},
"node_id": {
"type": "string"
},
"notifications_url": {
"type": "string",
"format": "uri-template"
},
"open_issues": {
"type": "integer"
},
"open_issues_count": {
"type": "integer"
},
"organization": {
"type": "string"
},
"owner": {
"title": "User",
"type": "object",
"nullable": true,
"properties": {
"avatar_url": {
"type": "string",
"format": "uri"
},
"deleted": {
"type": "boolean"
},
"email": {
"type": "string",
"nullable": true
},
"events_url": {
"type": "string",
"format": "uri-template"
},
"followers_url": {
"type": "string",
"format": "uri"
},
"following_url": {
"type": "string",
"format": "uri-template"
},
"gists_url": {
"type": "string",
"format": "uri-template"
},
"gravatar_id": {
"type": "string"
},
"html_url": {
"type": "string",
"format": "uri"
},
"id": {
"type": "integer"
},
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"node_id": {
"type": "string"
},
"organizations_url": {
"type": "string",
"format": "uri"
},
"received_events_url": {
"type": "string",
"format": "uri"
},
"repos_url": {
"type": "string",
"format": "uri"
},
"site_admin": {
"type": "boolean"
},
"starred_url": {
"type": "string",
"format": "uri-template"
},
"subscriptions_url": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"enum": [
"Bot",
"User",
"Organization"
]
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"login",
"id"
]
},
"permissions": {
"type": "object",
"properties": {
"admin": {
"type": "boolean"
},
"maintain": {
"type": "boolean"
},
"pull": {
"type": "boolean"
},
"push": {
"type": "boolean"
},
"triage": {
"type": "boolean"
}
},
"required": [
"pull",
"push",
"admin"
]
},
"private": {
"description": "Whether the repository is private or public.",
"type": "boolean"
},
"public": {
"type": "boolean"
},
"pulls_url": {
"type": "string",
"format": "uri-template"
},
"pushed_at": {
"nullable": true,
"oneOf": [
{
"type": "integer"
},
{
"type": "string",
"format": "date-time"
}
]
},
"releases_url": {
"type": "string",
"format": "uri-template"
},
"role_name": {
"type": "string",
"nullable": true
},
"size": {
"type": "integer"
},
"ssh_url": {
"type": "string"
},
"stargazers": {
"type": "integer"
},
"stargazers_count": {
"type": "integer"
},
"stargazers_url": {
"type": "string",
"format": "uri"
},
"statuses_url": {
"type": "string",
"format": "uri-template"
},
"subscribers_url": {
"type": "string",
"format": "uri"
},
"subscription_url": {
"type": "string",
"format": "uri"
},
"svn_url": {
"type": "string",
"format": "uri"
},
"tags_url": {
"type": "string",
"format": "uri"
},
"teams_url": {
"type": "string",
"format": "uri"
},
"topics": {
"type": "array",
"items": {
"type": "string"
}
},
"trees_url": {
"type": "string",
"format": "uri-template"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"url": {
"type": "string",
"format": "uri"
},
"visibility": {
"type": "string",
"enum": [
"public",
"private",
"internal"
]
},
"watchers": {
"type": "integer"
},
"watchers_count": {
"type": "integer"
},
"web_commit_signoff_required": {
"description": "Whether to require contributors to sign off on web-based commits",
"type": "boolean"
}
},
"required": [
"id",
"node_id",
"name",
"full_name",
"private",
"owner",
"html_url",
"description",
"fork",
"url",
"forks_url",
"keys_url",
"collaborators_url",
"teams_url",
"hooks_url",
"issue_events_url",
"events_url",
"assignees_url",
"branches_url",
"tags_url",
"blobs_url",
"git_tags_url",
"git_refs_url",
"trees_url",
"statuses_url",
"languages_url",
"stargazers_url",
"contributors_url",
"subscribers_url",
"subscription_url",
"commits_url",
"git_commits_url",
"comments_url",
"issue_comment_url",
"contents_url",
"compare_url",
"merges_url",
"archive_url",
"downloads_url",
"issues_url",
"pulls_url",
"milestones_url",
"notifications_url",
"labels_url",
"releases_url",
"deployments_url",
"created_at",
"updated_at",
"pushed_at",
"git_url",
"ssh_url",
"clone_url",
"svn_url",
"homepage",
"size",
"stargazers_count",
"watchers_count",
"language",
"has_issues",
"has_projects",
"has_downloads",
"has_wiki",
"has_pages",
"has_discussions",
"forks_count",
"mirror_url",
"archived",
"open_issues_count",
"license",
"forks",
"open_issues",
"watchers",
"default_branch",
"topics",
"visibility"
]
},
"sender": {
"$ref": "#/components/schemas/simple-user-webhooks"
}
},
"required": [
"ref",
"before",
"after",
"created",
"deleted",
"forced",
"base_ref",
"compare",
"commits",
"head_commit",
"repository",
"pusher"
]
}