{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/github/main/json-schema/github-check-run-schema.json", "title": "CheckRun", "description": "A check performed on the code of a given code change", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/github-checks-api-openapi.yml#/components/schemas/check-run", "type": "object", "properties": { "id": { "description": "The id of the check.", "type": "integer" }, "head_sha": { "description": "The SHA of the commit that is being checked.", "type": "string" }, "node_id": { "type": "string" }, "external_id": { "type": [ "string", "null" ] }, "url": { "type": "string" }, "html_url": { "type": [ "string", "null" ] }, "details_url": { "type": [ "string", "null" ] }, "status": { "description": "The phase of the lifecycle that the check is currently in.", "type": "string", "enum": [ "queued", "in_progress", "completed" ] }, "conclusion": { "type": [ "string", "null" ], "enum": [ "success", "failure", "neutral", "cancelled", "skipped", "timed_out", "action_required" ] }, "started_at": { "type": [ "string", "null" ], "format": "date-time" }, "completed_at": { "type": [ "string", "null" ], "format": "date-time" }, "output": { "type": "object", "properties": { "title": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "annotations_count": { "type": "integer" }, "annotations_url": { "type": "string", "format": "uri" } }, "required": [ "title", "summary", "text", "annotations_count", "annotations_url" ] }, "name": { "description": "The name of the check.", "type": "string" }, "check_suite": { "type": [ "object", "null" ], "properties": { "id": { "type": "integer" } }, "required": [ "id" ] }, "app": { "$ref": "#/$defs/nullable-integration" }, "pull_requests": { "description": "Pull requests that are open with a `head_sha` or `head_branch` that matches the check. The returned pull requests do not necessarily indicate pull requests that triggered the check.", "type": "array", "items": { "$ref": "#/$defs/pull-request-minimal" } }, "deployment": { "$ref": "#/$defs/deployment-simple" } }, "required": [ "id", "node_id", "head_sha", "name", "url", "html_url", "details_url", "status", "conclusion", "started_at", "completed_at", "external_id", "check_suite", "output", "app", "pull_requests" ], "$defs": { "deployment-simple": { "title": "Deployment", "description": "A deployment created as the result of an Actions check run from a workflow that references an environment", "type": "object", "properties": { "url": { "type": "string", "format": "uri" }, "id": { "description": "Unique identifier of the deployment", "type": "integer" }, "node_id": { "type": "string" }, "task": { "description": "Parameter to specify a task to execute", "type": "string" }, "original_environment": { "type": "string" }, "environment": { "description": "Name for the target deployment environment.", "type": "string" }, "description": { "type": [ "string", "null" ] }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" }, "statuses_url": { "type": "string", "format": "uri" }, "repository_url": { "type": "string", "format": "uri" }, "transient_environment": { "description": "Specifies if the given environment is will no longer exist at some point in the future. Default: false.", "type": "boolean" }, "production_environment": { "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.", "type": "boolean" }, "performed_via_github_app": { "$ref": "#/$defs/nullable-integration" } }, "required": [ "id", "node_id", "task", "environment", "description", "statuses_url", "repository_url", "url", "created_at", "updated_at" ] }, "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-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" ] }, "pull-request-minimal": { "title": "Pull Request Minimal", "type": "object", "properties": { "id": { "type": "integer" }, "number": { "type": "integer" }, "url": { "type": "string" }, "head": { "type": "object", "properties": { "ref": { "type": "string" }, "sha": { "type": "string" }, "repo": { "type": "object", "properties": { "id": { "type": "integer" }, "url": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "url", "name" ] } }, "required": [ "ref", "sha", "repo" ] }, "base": { "type": "object", "properties": { "ref": { "type": "string" }, "sha": { "type": "string" }, "repo": { "type": "object", "properties": { "id": { "type": "integer" }, "url": { "type": "string" }, "name": { "type": "string" } }, "required": [ "id", "url", "name" ] } }, "required": [ "ref", "sha", "repo" ] } }, "required": [ "id", "number", "url", "head", "base" ] } } }