{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/github/main/json-schema/github-issue-event-schema.json", "title": "Issue Event", "description": "Issue Event", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/github-issues-api-openapi.yml#/components/schemas/issue-event", "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "node_id": { "type": "string" }, "url": { "type": "string", "format": "uri" }, "actor": { "$ref": "#/$defs/nullable-simple-user" }, "event": { "type": "string" }, "commit_id": { "type": [ "string", "null" ] }, "commit_url": { "type": [ "string", "null" ] }, "created_at": { "type": "string", "format": "date-time" }, "issue": { "$ref": "#/$defs/nullable-issue" }, "label": { "$ref": "#/$defs/issue-event-label" }, "assignee": { "$ref": "#/$defs/nullable-simple-user" }, "assigner": { "$ref": "#/$defs/nullable-simple-user" }, "review_requester": { "$ref": "#/$defs/nullable-simple-user" }, "requested_reviewer": { "$ref": "#/$defs/nullable-simple-user" }, "requested_team": { "$ref": "#/$defs/team" }, "dismissed_review": { "$ref": "#/$defs/issue-event-dismissed-review" }, "milestone": { "$ref": "#/$defs/issue-event-milestone" }, "project_card": { "$ref": "#/$defs/issue-event-project-card" }, "rename": { "$ref": "#/$defs/issue-event-rename" }, "author_association": { "$ref": "#/$defs/author-association" }, "lock_reason": { "type": [ "string", "null" ] }, "performed_via_github_app": { "$ref": "#/$defs/nullable-integration" } }, "required": [ "id", "node_id", "url", "actor", "event", "commit_id", "commit_url", "created_at" ], "$defs": { "author-association": { "title": "author_association", "type": "string", "description": "How the author is associated with the repository.", "enum": [ "COLLABORATOR", "CONTRIBUTOR", "FIRST_TIMER", "FIRST_TIME_CONTRIBUTOR", "MANNEQUIN", "MEMBER", "NONE", "OWNER" ] }, "issue-event-dismissed-review": { "title": "Issue Event Dismissed Review", "type": "object", "properties": { "state": { "type": "string" }, "review_id": { "type": "integer" }, "dismissal_message": { "type": [ "string", "null" ] }, "dismissal_commit_id": { "type": [ "string", "null" ] } }, "required": [ "state", "review_id", "dismissal_message" ] }, "issue-event-label": { "title": "Issue Event Label", "description": "Issue Event Label", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "color": { "type": [ "string", "null" ] } }, "required": [ "name", "color" ] }, "issue-event-milestone": { "title": "Issue Event Milestone", "description": "Issue Event Milestone", "type": "object", "properties": { "title": { "type": "string" } }, "required": [ "title" ] }, "issue-event-project-card": { "title": "Issue Event Project Card", "description": "Issue Event Project Card", "type": "object", "properties": { "url": { "type": "string", "format": "uri" }, "id": { "type": "integer" }, "project_url": { "type": "string", "format": "uri" }, "project_id": { "type": "integer" }, "column_name": { "type": "string" }, "previous_column_name": { "type": "string" } }, "required": [ "url", "id", "project_url", "project_id", "column_name" ] }, "issue-event-rename": { "title": "Issue Event Rename", "description": "Issue Event Rename", "type": "object", "properties": { "from": { "type": "string" }, "to": { "type": "string" } }, "required": [ "from", "to" ] }, "nullable-integration": { "title": "GitHub app", "description": "GitHub apps are a new way to extend GitHub. They can be installed directly on organizations and user accounts and granted access to specific repositories. They come with granular permissions and built-in webhooks. GitHub apps are first class actors within GitHub.", "type": [ "object", "null" ], "properties": { "id": { "description": "Unique identifier of the GitHub app", "type": "integer" }, "slug": { "description": "The slug name of the GitHub app", "type": "string" }, "node_id": { "type": "string" }, "owner": { "$ref": "#/$defs/nullable-simple-user" }, "name": { "description": "The name of the GitHub app", "type": "string" }, "description": { "type": [ "string", "null" ] }, "external_url": { "type": "string", "format": "uri" }, "html_url": { "type": "string", "format": "uri" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "permissions": { "description": "The set of permissions for the GitHub app", "type": "object", "properties": { "issues": { "type": "string" }, "checks": { "type": "string" }, "metadata": { "type": "string" }, "contents": { "type": "string" }, "deployments": { "type": "string" } }, "additionalProperties": { "type": "string" } }, "events": { "description": "The list of events for the GitHub app", "type": "array", "items": { "type": "string" } }, "installations_count": { "description": "The number of installations associated with the GitHub app", "type": "integer" }, "client_id": { "type": "string" }, "client_secret": { "type": "string" }, "webhook_secret": { "type": [ "string", "null" ] }, "pem": { "type": "string" } }, "required": [ "id", "node_id", "owner", "name", "description", "external_url", "html_url", "created_at", "updated_at", "permissions", "events" ] }, "nullable-issue": { "title": "Issue", "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", "type": [ "object", "null" ], "properties": { "id": { "type": "integer", "format": "int64" }, "node_id": { "type": "string" }, "url": { "description": "URL for the issue", "type": "string", "format": "uri" }, "repository_url": { "type": "string", "format": "uri" }, "labels_url": { "type": "string" }, "comments_url": { "type": "string", "format": "uri" }, "events_url": { "type": "string", "format": "uri" }, "html_url": { "type": "string", "format": "uri" }, "number": { "description": "Number uniquely identifying the issue within its repository", "type": "integer" }, "state": { "description": "State of the issue; either 'open' or 'closed'", "type": "string" }, "state_reason": { "description": "The reason for the current state", "type": [ "string", "null" ], "enum": [ "completed", "reopened", "not_planned" ] }, "title": { "description": "Title of the issue", "type": "string" }, "body": { "description": "Contents of the issue", "type": [ "string", "null" ] }, "user": { "$ref": "#/$defs/nullable-simple-user" }, "labels": { "description": "Labels to associate with this issue; pass one or more label names to replace the set of labels on this issue; send an empty array to clear all labels from the issue; note that the labels are silently dropped for users without push access to the repository", "type": "array", "items": { "oneOf": [ { "type": "string" }, { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "node_id": { "type": "string" }, "url": { "type": "string", "format": "uri" }, "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "color": { "type": [ "string", "null" ] }, "default": { "type": "boolean" } } } ] } }, "assignee": { "$ref": "#/$defs/nullable-simple-user" }, "assignees": { "type": [ "array", "null" ], "items": { "$ref": "#/$defs/simple-user" } }, "milestone": { "$ref": "#/$defs/nullable-milestone" }, "locked": { "type": "boolean" }, "active_lock_reason": { "type": [ "string", "null" ] }, "comments": { "type": "integer" }, "pull_request": { "type": "object", "properties": { "merged_at": { "type": [ "string", "null" ], "format": "date-time" }, "diff_url": { "type": [ "string", "null" ], "format": "uri" }, "html_url": { "type": [ "string", "null" ], "format": "uri" }, "patch_url": { "type": [ "string", "null" ], "format": "uri" }, "url": { "type": [ "string", "null" ], "format": "uri" } }, "required": [ "diff_url", "html_url", "patch_url", "url" ] }, "closed_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "draft": { "type": "boolean" }, "closed_by": { "$ref": "#/$defs/nullable-simple-user" }, "body_html": { "type": "string" }, "body_text": { "type": "string" }, "timeline_url": { "type": "string", "format": "uri" }, "repository": { "$ref": "#/$defs/repository" }, "performed_via_github_app": { "$ref": "#/$defs/nullable-integration" }, "author_association": { "$ref": "#/$defs/author-association" }, "reactions": { "$ref": "#/$defs/reaction-rollup" } }, "required": [ "assignee", "closed_at", "comments", "comments_url", "events_url", "html_url", "id", "node_id", "labels", "labels_url", "milestone", "number", "repository_url", "state", "locked", "title", "url", "user", "author_association", "created_at", "updated_at" ] }, "nullable-license-simple": { "title": "License Simple", "description": "License Simple", "type": [ "object", "null" ], "properties": { "key": { "type": "string" }, "name": { "type": "string" }, "url": { "type": [ "string", "null" ], "format": "uri" }, "spdx_id": { "type": [ "string", "null" ] }, "node_id": { "type": "string" }, "html_url": { "type": "string", "format": "uri" } }, "required": [ "key", "name", "url", "spdx_id", "node_id" ] }, "nullable-milestone": { "title": "Milestone", "description": "A collection of related issues and pull requests.", "type": [ "object", "null" ], "properties": { "url": { "type": "string", "format": "uri" }, "html_url": { "type": "string", "format": "uri" }, "labels_url": { "type": "string", "format": "uri" }, "id": { "type": "integer" }, "node_id": { "type": "string" }, "number": { "description": "The number of the milestone.", "type": "integer" }, "state": { "description": "The state of the milestone.", "type": "string", "enum": [ "open", "closed" ], "default": "open" }, "title": { "description": "The title of the milestone.", "type": "string" }, "description": { "type": [ "string", "null" ] }, "creator": { "$ref": "#/$defs/nullable-simple-user" }, "open_issues": { "type": "integer" }, "closed_issues": { "type": "integer" }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "closed_at": { "type": [ "string", "null" ], "format": "date-time" }, "due_on": { "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "closed_issues", "creator", "description", "due_on", "closed_at", "id", "node_id", "labels_url", "html_url", "number", "open_issues", "state", "title", "url", "created_at", "updated_at" ] }, "nullable-simple-user": { "title": "Simple User", "description": "A GitHub user.", "type": [ "object", "null" ], "properties": { "name": { "type": [ "string", "null" ] }, "email": { "type": [ "string", "null" ] }, "login": { "type": "string" }, "id": { "type": "integer" }, "node_id": { "type": "string" }, "avatar_url": { "type": "string", "format": "uri" }, "gravatar_id": { "type": [ "string", "null" ] }, "url": { "type": "string", "format": "uri" }, "html_url": { "type": "string", "format": "uri" }, "followers_url": { "type": "string", "format": "uri" }, "following_url": { "type": "string" }, "gists_url": { "type": "string" }, "starred_url": { "type": "string" }, "subscriptions_url": { "type": "string", "format": "uri" }, "organizations_url": { "type": "string", "format": "uri" }, "repos_url": { "type": "string", "format": "uri" }, "events_url": { "type": "string" }, "received_events_url": { "type": "string", "format": "uri" }, "type": { "type": "string" }, "site_admin": { "type": "boolean" }, "starred_at": { "type": "string" } }, "required": [ "avatar_url", "events_url", "followers_url", "following_url", "gists_url", "gravatar_id", "html_url", "id", "node_id", "login", "organizations_url", "received_events_url", "repos_url", "site_admin", "starred_url", "subscriptions_url", "type", "url" ] }, "nullable-team-simple": { "title": "Team Simple", "description": "Groups of organization members that gives permissions on specified repositories.", "type": [ "object", "null" ], "properties": { "id": { "description": "Unique identifier of the team", "type": "integer" }, "node_id": { "type": "string" }, "url": { "description": "URL for the team", "type": "string", "format": "uri" }, "members_url": { "type": "string" }, "name": { "description": "Name of the team", "type": "string" }, "description": { "description": "Description of the team", "type": [ "string", "null" ] }, "permission": { "description": "Permission that the team will have for its repositories", "type": "string" }, "privacy": { "description": "The level of privacy this team should have", "type": "string" }, "html_url": { "type": "string", "format": "uri" }, "repositories_url": { "type": "string", "format": "uri" }, "slug": { "type": "string" }, "ldap_dn": { "description": "Distinguished Name (DN) that team maps to within LDAP environment", "type": "string" } }, "required": [ "id", "node_id", "url", "members_url", "name", "description", "permission", "html_url", "repositories_url", "slug" ] }, "reaction-rollup": { "title": "Reaction Rollup", "type": "object", "properties": { "url": { "type": "string", "format": "uri" }, "total_count": { "type": "integer" }, "+1": { "type": "integer" }, "-1": { "type": "integer" }, "laugh": { "type": "integer" }, "confused": { "type": "integer" }, "heart": { "type": "integer" }, "hooray": { "type": "integer" }, "eyes": { "type": "integer" }, "rocket": { "type": "integer" } }, "required": [ "url", "total_count", "+1", "-1", "laugh", "confused", "heart", "hooray", "eyes", "rocket" ] }, "repository": { "title": "Repository", "description": "A repository on GitHub.", "type": "object", "properties": { "id": { "description": "Unique identifier of the repository", "type": "integer" }, "node_id": { "type": "string" }, "name": { "description": "The name of the repository.", "type": "string" }, "full_name": { "type": "string" }, "license": { "$ref": "#/$defs/nullable-license-simple" }, "forks": { "type": "integer" }, "permissions": { "type": "object", "properties": { "admin": { "type": "boolean" }, "pull": { "type": "boolean" }, "triage": { "type": "boolean" }, "push": { "type": "boolean" }, "maintain": { "type": "boolean" } }, "required": [ "admin", "pull", "push" ] }, "owner": { "$ref": "#/$defs/simple-user" }, "private": { "description": "Whether the repository is private or public.", "default": false, "type": "boolean" }, "html_url": { "type": "string", "format": "uri" }, "description": { "type": [ "string", "null" ] }, "fork": { "type": "boolean" }, "url": { "type": "string", "format": "uri" }, "archive_url": { "type": "string" }, "assignees_url": { "type": "string" }, "blobs_url": { "type": "string" }, "branches_url": { "type": "string" }, "collaborators_url": { "type": "string" }, "comments_url": { "type": "string" }, "commits_url": { "type": "string" }, "compare_url": { "type": "string" }, "contents_url": { "type": "string" }, "contributors_url": { "type": "string", "format": "uri" }, "deployments_url": { "type": "string", "format": "uri" }, "downloads_url": { "type": "string", "format": "uri" }, "events_url": { "type": "string", "format": "uri" }, "forks_url": { "type": "string", "format": "uri" }, "git_commits_url": { "type": "string" }, "git_refs_url": { "type": "string" }, "git_tags_url": { "type": "string" }, "git_url": { "type": "string" }, "issue_comment_url": { "type": "string" }, "issue_events_url": { "type": "string" }, "issues_url": { "type": "string" }, "keys_url": { "type": "string" }, "labels_url": { "type": "string" }, "languages_url": { "type": "string", "format": "uri" }, "merges_url": { "type": "string", "format": "uri" }, "milestones_url": { "type": "string" }, "notifications_url": { "type": "string" }, "pulls_url": { "type": "string" }, "releases_url": { "type": "string" }, "ssh_url": { "type": "string" }, "stargazers_url": { "type": "string", "format": "uri" }, "statuses_url": { "type": "string" }, "subscribers_url": { "type": "string", "format": "uri" }, "subscription_url": { "type": "string", "format": "uri" }, "tags_url": { "type": "string", "format": "uri" }, "teams_url": { "type": "string", "format": "uri" }, "trees_url": { "type": "string" }, "clone_url": { "type": "string" }, "mirror_url": { "type": [ "string", "null" ], "format": "uri" }, "hooks_url": { "type": "string", "format": "uri" }, "svn_url": { "type": "string", "format": "uri" }, "homepage": { "type": [ "string", "null" ], "format": "uri" }, "language": { "type": [ "string", "null" ] }, "forks_count": { "type": "integer" }, "stargazers_count": { "type": "integer" }, "watchers_count": { "type": "integer" }, "size": { "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", "type": "integer" }, "default_branch": { "description": "The default branch of the repository.", "type": "string" }, "open_issues_count": { "type": "integer" }, "is_template": { "description": "Whether this repository acts as a template that can be used to generate new repositories.", "default": false, "type": "boolean" }, "topics": { "type": "array", "items": { "type": "string" } }, "has_issues": { "description": "Whether issues are enabled.", "default": true, "type": "boolean" }, "has_projects": { "description": "Whether projects are enabled.", "default": true, "type": "boolean" }, "has_wiki": { "description": "Whether the wiki is enabled.", "default": true, "type": "boolean" }, "has_pages": { "type": "boolean" }, "has_downloads": { "description": "Whether downloads are enabled.", "default": true, "type": "boolean", "deprecated": true }, "has_discussions": { "description": "Whether discussions are enabled.", "default": false, "type": "boolean" }, "archived": { "description": "Whether the repository is archived.", "default": false, "type": "boolean" }, "disabled": { "type": "boolean", "description": "Returns whether or not this repository disabled." }, "visibility": { "description": "The repository visibility: public, private, or internal.", "default": "public", "type": "string" }, "pushed_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": [ "string", "null" ], "format": "date-time" }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "allow_rebase_merge": { "description": "Whether to allow rebase merges for pull requests.", "default": true, "type": "boolean" }, "temp_clone_token": { "type": "string" }, "allow_squash_merge": { "description": "Whether to allow squash merges for pull requests.", "default": true, "type": "boolean" }, "allow_auto_merge": { "description": "Whether to allow Auto-merge to be used on pull requests.", "default": false, "type": "boolean" }, "delete_branch_on_merge": { "description": "Whether to delete head branches when pull requests are merged", "default": false, "type": "boolean" }, "allow_update_branch": { "description": "Whether or not a pull request head branch that is behind its base branch can always be updated even if it is not required to be up to date before merging.", "default": false, "type": "boolean" }, "use_squash_pr_title_as_default": { "type": "boolean", "description": "Whether a squash merge commit can use the pull request title as default. **This property has been deprecated. Please use `squash_merge_commit_title` instead.", "default": false, "deprecated": true }, "squash_merge_commit_title": { "type": "string", "enum": [ "PR_TITLE", "COMMIT_OR_PR_TITLE" ], "description": "The default value for a squash merge commit title:\n\n- `PR_TITLE` - default to the pull request's title.\n- `COMMIT_OR_PR_TITLE` - default to the commit's title (if only one commit) or the pull request's title (when more than one commit)." }, "squash_merge_commit_message": { "type": "string", "enum": [ "PR_BODY", "COMMIT_MESSAGES", "BLANK" ], "description": "The default value for a squash merge commit message:\n\n- `PR_BODY` - default to the pull request's body.\n- `COMMIT_MESSAGES` - default to the branch's commit messages.\n- `BLANK` - default to a blank commit message." }, "merge_commit_title": { "type": "string", "enum": [ "PR_TITLE", "MERGE_MESSAGE" ], "description": "The default value for a merge commit title.\n\n- `PR_TITLE` - default to the pull request's title.\n- `MERGE_MESSAGE` - default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name)." }, "merge_commit_message": { "type": "string", "enum": [ "PR_BODY", "PR_TITLE", "BLANK" ], "description": "The default value for a merge commit message.\n\n- `PR_TITLE` - default to the pull request's title.\n- `PR_BODY` - default to the pull request's body.\n- `BLANK` - default to a blank commit message." }, "allow_merge_commit": { "description": "Whether to allow merge commits for pull requests.", "default": true, "type": "boolean" }, "allow_forking": { "description": "Whether to allow forking this repo", "type": "boolean" }, "web_commit_signoff_required": { "description": "Whether to require contributors to sign off on web-based commits", "default": false, "type": "boolean" }, "open_issues": { "type": "integer" }, "watchers": { "type": "integer" }, "master_branch": { "type": "string" }, "starred_at": { "type": "string" }, "anonymous_access_enabled": { "type": "boolean", "description": "Whether anonymous git access is enabled for this repository" } }, "required": [ "archive_url", "assignees_url", "blobs_url", "branches_url", "collaborators_url", "comments_url", "commits_url", "compare_url", "contents_url", "contributors_url", "deployments_url", "description", "downloads_url", "events_url", "fork", "forks_url", "full_name", "git_commits_url", "git_refs_url", "git_tags_url", "hooks_url", "html_url", "id", "node_id", "issue_comment_url", "issue_events_url", "issues_url", "keys_url", "labels_url", "languages_url", "merges_url", "milestones_url", "name", "notifications_url", "owner", "private", "pulls_url", "releases_url", "stargazers_url", "statuses_url", "subscribers_url", "subscription_url", "tags_url", "teams_url", "trees_url", "url", "clone_url", "default_branch", "forks", "forks_count", "git_url", "has_downloads", "has_issues", "has_projects", "has_wiki", "has_pages", "homepage", "language", "archived", "disabled", "mirror_url", "open_issues", "open_issues_count", "license", "pushed_at", "size", "ssh_url", "stargazers_count", "svn_url", "watchers", "watchers_count", "created_at", "updated_at" ] }, "simple-user": { "title": "Simple User", "description": "A GitHub user.", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "email": { "type": [ "string", "null" ] }, "login": { "type": "string" }, "id": { "type": "integer" }, "node_id": { "type": "string" }, "avatar_url": { "type": "string", "format": "uri" }, "gravatar_id": { "type": [ "string", "null" ] }, "url": { "type": "string", "format": "uri" }, "html_url": { "type": "string", "format": "uri" }, "followers_url": { "type": "string", "format": "uri" }, "following_url": { "type": "string" }, "gists_url": { "type": "string" }, "starred_url": { "type": "string" }, "subscriptions_url": { "type": "string", "format": "uri" }, "organizations_url": { "type": "string", "format": "uri" }, "repos_url": { "type": "string", "format": "uri" }, "events_url": { "type": "string" }, "received_events_url": { "type": "string", "format": "uri" }, "type": { "type": "string" }, "site_admin": { "type": "boolean" }, "starred_at": { "type": "string" } }, "required": [ "avatar_url", "events_url", "followers_url", "following_url", "gists_url", "gravatar_id", "html_url", "id", "node_id", "login", "organizations_url", "received_events_url", "repos_url", "site_admin", "starred_url", "subscriptions_url", "type", "url" ] }, "team": { "title": "Team", "description": "Groups of organization members that gives permissions on specified repositories.", "type": "object", "properties": { "id": { "type": "integer" }, "node_id": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "privacy": { "type": "string" }, "permission": { "type": "string" }, "permissions": { "type": "object", "properties": { "pull": { "type": "boolean" }, "triage": { "type": "boolean" }, "push": { "type": "boolean" }, "maintain": { "type": "boolean" }, "admin": { "type": "boolean" } }, "required": [ "pull", "triage", "push", "maintain", "admin" ] }, "url": { "type": "string", "format": "uri" }, "html_url": { "type": "string", "format": "uri" }, "members_url": { "type": "string" }, "repositories_url": { "type": "string", "format": "uri" }, "parent": { "$ref": "#/$defs/nullable-team-simple" } }, "required": [ "id", "node_id", "url", "members_url", "name", "description", "permission", "html_url", "repositories_url", "slug", "parent" ] } } }