Open Context Protocol is live! 🚀 Read the launch post

checksCreate

Create a check run

Details

  • Method: POST
  • Path: /repos/{owner}/{repo}/check-runs
  • Operation ID: checks/create

Parameters

{
  "owner": {
    "description": "The account owner of the repository. The name is not case sensitive.",
    "required": true,
    "location": "path",
    "type": "string"
  },
  "repo": {
    "description": "The name of the repository without the `.git` extension. The name is not case sensitive.",
    "required": true,
    "location": "path",
    "type": "string"
  },
  "name": {
    "description": "The name of the check. For example, \"code-coverage\".",
    "required": true,
    "location": "body",
    "type": "string"
  },
  "head_sha": {
    "description": "The SHA of the commit.",
    "required": true,
    "location": "body",
    "type": "string"
  },
  "details_url": {
    "description": "The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "external_id": {
    "description": "A reference for the run on the integrator's system.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "status": {
    "description": "The current status of the check run. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`.",
    "required": false,
    "location": "body",
    "type": "string",
    "enum": [
      "queued",
      "in_progress",
      "completed",
      "waiting",
      "requested",
      "pending"
    ]
  },
  "started_at": {
    "description": "The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "conclusion": {
    "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. You cannot change a check run conclusion to `stale`, only GitHub can set this.",
    "required": false,
    "location": "body",
    "type": "string",
    "enum": [
      "action_required",
      "cancelled",
      "failure",
      "neutral",
      "success",
      "skipped",
      "stale",
      "timed_out"
    ]
  },
  "completed_at": {
    "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "output": {
    "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run.",
    "required": false,
    "location": "body",
    "type": "object"
  },
  "actions": {
    "description": "Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://docs.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://docs.github.com/rest/guides/using-the-rest-api-to-interact-with-checks#check-runs-and-requested-actions).\"",
    "required": false,
    "location": "body",
    "type": "array"
  }
}

Response Schema

{
  "title": "CheckRun",
  "description": "A check performed on the code of a given code change",
  "type": "object",
  "properties": {
    "id": {
      "description": "The id of the check.",
      "example": 21,
      "type": "integer",
      "format": "int64"
    },
    "head_sha": {
      "description": "The SHA of the commit that is being checked.",
      "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d",
      "type": "string"
    },
    "node_id": {
      "type": "string",
      "example": "MDg6Q2hlY2tSdW40"
    },
    "external_id": {
      "type": "string",
      "example": "42",
      "nullable": true
    },
    "url": {
      "type": "string",
      "example": "https://api.github.com/repos/github/hello-world/check-runs/4"
    },
    "html_url": {
      "type": "string",
      "example": "https://github.com/github/hello-world/runs/4",
      "nullable": true
    },
    "details_url": {
      "type": "string",
      "example": "https://example.com",
      "nullable": true
    },
    "status": {
      "description": "The phase of the lifecycle that the check is currently in. Statuses of waiting, requested, and pending are reserved for GitHub Actions check runs.",
      "example": "queued",
      "type": "string",
      "enum": [
        "queued",
        "in_progress",
        "completed",
        "waiting",
        "requested",
        "pending"
      ]
    },
    "conclusion": {
      "type": "string",
      "example": "neutral",
      "enum": [
        "success",
        "failure",
        "neutral",
        "cancelled",
        "skipped",
        "timed_out",
        "action_required"
      ],
      "nullable": true
    },
    "started_at": {
      "type": "string",
      "format": "date-time",
      "example": "2018-05-04T01:14:52Z",
      "nullable": true
    },
    "completed_at": {
      "type": "string",
      "format": "date-time",
      "example": "2018-05-04T01:14:52Z",
      "nullable": true
    },
    "output": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "nullable": true
        },
        "summary": {
          "type": "string",
          "nullable": true
        },
        "text": {
          "type": "string",
          "nullable": true
        },
        "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.",
      "example": "test-coverage",
      "type": "string"
    },
    "check_suite": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        }
      },
      "required": [
        "id"
      ],
      "nullable": true
    },
    "app": {
      "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",
      "nullable": true,
      "properties": {
        "id": {
          "description": "Unique identifier of the GitHub app",
          "example": 37,
          "type": "integer"
        },
        "slug": {
          "description": "The slug name of the GitHub app",
          "example": "probot-owners",
          "type": "string"
        },
        "node_id": {
          "type": "string",
          "example": "MDExOkludGVncmF0aW9uMQ=="
        },
        "client_id": {
          "type": "string",
          "example": "\"Iv1.25b5d1e65ffc4022\""
        },
        "owner": {
          "oneOf": [
            {
              "title": "Simple User",
              "description": "A GitHub user.",
              "type": "object",
              "properties": {
                "name": {
                  "nullable": true,
                  "type": "string"
                },
                "email": {
                  "nullable": true,
                  "type": "string"
                },
                "login": {
                  "type": "string",
                  "example": "octocat"
                },
                "id": {
                  "type": "integer",
                  "format": "int64",
                  "example": 1
                },
                "node_id": {
                  "type": "string",
                  "example": "MDQ6VXNlcjE="
                },
                "avatar_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://github.com/images/error/octocat_happy.gif"
                },
                "gravatar_id": {
                  "type": "string",
                  "example": "41d064eb2195891e12d0413f63227ea7",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://api.github.com/users/octocat"
                },
                "html_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://github.com/octocat"
                },
                "followers_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://api.github.com/users/octocat/followers"
                },
                "following_url": {
                  "type": "string",
                  "example": "https://api.github.com/users/octocat/following{/other_user}"
                },
                "gists_url": {
                  "type": "string",
                  "example": "https://api.github.com/users/octocat/gists{/gist_id}"
                },
                "starred_url": {
                  "type": "string",
                  "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}"
                },
                "subscriptions_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://api.github.com/users/octocat/subscriptions"
                },
                "organizations_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://api.github.com/users/octocat/orgs"
                },
                "repos_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://api.github.com/users/octocat/repos"
                },
                "events_url": {
                  "type": "string",
                  "example": "https://api.github.com/users/octocat/events{/privacy}"
                },
                "received_events_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://api.github.com/users/octocat/received_events"
                },
                "type": {
                  "type": "string",
                  "example": "User"
                },
                "site_admin": {
                  "type": "boolean"
                },
                "starred_at": {
                  "type": "string",
                  "example": "\"2020-07-09T00:17:55Z\""
                },
                "user_view_type": {
                  "type": "string",
                  "example": "public"
                }
              },
              "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"
              ]
            },
            {
              "title": "Enterprise",
              "description": "An enterprise on GitHub.",
              "type": "object",
              "properties": {
                "description": {
                  "description": "A short description of the enterprise.",
                  "type": "string",
                  "nullable": true
                },
                "html_url": {
                  "type": "string",
                  "format": "uri",
                  "example": "https://github.com/enterprises/octo-business"
                },
                "website_url": {
                  "description": "The enterprise's website URL.",
                  "type": "string",
                  "nullable": true,
                  "format": "uri"
                },
                "id": {
                  "description": "Unique identifier of the enterprise",
                  "example": 42,
                  "type": "integer"
                },
                "node_id": {
                  "type": "string",
                  "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5"
                },
                "name": {
                  "description": "The name of the enterprise.",
                  "type": "string",
                  "example": "Octo Business"
                },
                "slug": {
                  "description": "The slug url identifier for the enterprise.",
                  "type": "string",
                  "example": "octo-business"
                },
                "created_at": {
                  "type": "string",
                  "nullable": true,
                  "format": "date-time",
                  "example": "2019-01-26T19:01:12Z"
                },
                "updated_at": {
                  "type": "string",
                  "nullable": true,
                  "format": "date-time",
                  "example": "2019-01-26T19:14:43Z"
                },
                "avatar_url": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "required": [
                "id",
                "node_id",
                "name",
                "slug",
                "html_url",
                "created_at",
                "updated_at",
                "avatar_url"
              ]
            }
          ]
        },
        "name": {
          "description": "The name of the GitHub app",
          "example": "Probot Owners",
          "type": "string"
        },
        "description": {
          "type": "string",
          "example": "The description of the app.",
          "nullable": true
        },
        "external_url": {
          "type": "string",
          "format": "uri",
          "example": "https://example.com"
        },
        "html_url": {
          "type": "string",
          "format": "uri",
          "example": "https://github.com/apps/super-ci"
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2017-07-08T16:18:44-04:00"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "example": "2017-07-08T16:18:44-04:00"
        },
        "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"
          },
          "example": {
            "issues": "read",
            "deployments": "write"
          }
        },
        "events": {
          "description": "The list of events for the GitHub app. Note that the `installation_target`, `security_advisory`, and `meta` events are not included because they are global events and not specific to an installation.",
          "example": [
            "label",
            "deployment"
          ],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "installations_count": {
          "description": "The number of installations associated with the GitHub app. Only returned when the integration is requesting details about itself.",
          "example": 5,
          "type": "integer"
        }
      },
      "required": [
        "id",
        "node_id",
        "owner",
        "name",
        "description",
        "external_url",
        "html_url",
        "created_at",
        "updated_at",
        "permissions",
        "events"
      ]
    },
    "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": {
        "title": "Pull Request Minimal",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "number": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "head": {
            "type": "object",
            "properties": {
              "ref": {
                "type": "string"
              },
              "sha": {
                "type": "string"
              },
              "repo": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "format": "int64"
                  },
                  "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",
                    "format": "int64"
                  },
                  "url": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "url",
                  "name"
                ]
              }
            },
            "required": [
              "ref",
              "sha",
              "repo"
            ]
          }
        },
        "required": [
          "id",
          "number",
          "url",
          "head",
          "base"
        ]
      }
    },
    "deployment": {
      "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",
          "example": "https://api.github.com/repos/octocat/example/deployments/1"
        },
        "id": {
          "description": "Unique identifier of the deployment",
          "example": 42,
          "type": "integer"
        },
        "node_id": {
          "type": "string",
          "example": "MDEwOkRlcGxveW1lbnQx"
        },
        "task": {
          "description": "Parameter to specify a task to execute",
          "example": "deploy",
          "type": "string"
        },
        "original_environment": {
          "type": "string",
          "example": "staging"
        },
        "environment": {
          "description": "Name for the target deployment environment.",
          "example": "production",
          "type": "string"
        },
        "description": {
          "type": "string",
          "example": "Deploy request from hubot",
          "nullable": true
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-07-20T01:19:13Z"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "example": "2012-07-20T01:19:13Z"
        },
        "statuses_url": {
          "type": "string",
          "format": "uri",
          "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses"
        },
        "repository_url": {
          "type": "string",
          "format": "uri",
          "example": "https://api.github.com/repos/octocat/example"
        },
        "transient_environment": {
          "description": "Specifies if the given environment is will no longer exist at some point in the future. Default: false.",
          "example": true,
          "type": "boolean"
        },
        "production_environment": {
          "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.",
          "example": true,
          "type": "boolean"
        },
        "performed_via_github_app": {
          "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",
          "nullable": true,
          "properties": {
            "id": {
              "description": "Unique identifier of the GitHub app",
              "example": 37,
              "type": "integer"
            },
            "slug": {
              "description": "The slug name of the GitHub app",
              "example": "probot-owners",
              "type": "string"
            },
            "node_id": {
              "type": "string",
              "example": "MDExOkludGVncmF0aW9uMQ=="
            },
            "client_id": {
              "type": "string",
              "example": "\"Iv1.25b5d1e65ffc4022\""
            },
            "owner": {
              "oneOf": [
                {
                  "title": "Simple User",
                  "description": "A GitHub user.",
                  "type": "object",
                  "properties": {
                    "name": {
                      "nullable": true,
                      "type": "string"
                    },
                    "email": {
                      "nullable": true,
                      "type": "string"
                    },
                    "login": {
                      "type": "string",
                      "example": "octocat"
                    },
                    "id": {
                      "type": "integer",
                      "format": "int64",
                      "example": 1
                    },
                    "node_id": {
                      "type": "string",
                      "example": "MDQ6VXNlcjE="
                    },
                    "avatar_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://github.com/images/error/octocat_happy.gif"
                    },
                    "gravatar_id": {
                      "type": "string",
                      "example": "41d064eb2195891e12d0413f63227ea7",
                      "nullable": true
                    },
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://api.github.com/users/octocat"
                    },
                    "html_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://github.com/octocat"
                    },
                    "followers_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://api.github.com/users/octocat/followers"
                    },
                    "following_url": {
                      "type": "string",
                      "example": "https://api.github.com/users/octocat/following{/other_user}"
                    },
                    "gists_url": {
                      "type": "string",
                      "example": "https://api.github.com/users/octocat/gists{/gist_id}"
                    },
                    "starred_url": {
                      "type": "string",
                      "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}"
                    },
                    "subscriptions_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://api.github.com/users/octocat/subscriptions"
                    },
                    "organizations_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://api.github.com/users/octocat/orgs"
                    },
                    "repos_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://api.github.com/users/octocat/repos"
                    },
                    "events_url": {
                      "type": "string",
                      "example": "https://api.github.com/users/octocat/events{/privacy}"
                    },
                    "received_events_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://api.github.com/users/octocat/received_events"
                    },
                    "type": {
                      "type": "string",
                      "example": "User"
                    },
                    "site_admin": {
                      "type": "boolean"
                    },
                    "starred_at": {
                      "type": "string",
                      "example": "\"2020-07-09T00:17:55Z\""
                    },
                    "user_view_type": {
                      "type": "string",
                      "example": "public"
                    }
                  },
                  "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"
                  ]
                },
                {
                  "title": "Enterprise",
                  "description": "An enterprise on GitHub.",
                  "type": "object",
                  "properties": {
                    "description": {
                      "description": "A short description of the enterprise.",
                      "type": "string",
                      "nullable": true
                    },
                    "html_url": {
                      "type": "string",
                      "format": "uri",
                      "example": "https://github.com/enterprises/octo-business"
                    },
                    "website_url": {
                      "description": "The enterprise's website URL.",
                      "type": "string",
                      "nullable": true,
                      "format": "uri"
                    },
                    "id": {
                      "description": "Unique identifier of the enterprise",
                      "example": 42,
                      "type": "integer"
                    },
                    "node_id": {
                      "type": "string",
                      "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5"
                    },
                    "name": {
                      "description": "The name of the enterprise.",
                      "type": "string",
                      "example": "Octo Business"
                    },
                    "slug": {
                      "description": "The slug url identifier for the enterprise.",
                      "type": "string",
                      "example": "octo-business"
                    },
                    "created_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time",
                      "example": "2019-01-26T19:01:12Z"
                    },
                    "updated_at": {
                      "type": "string",
                      "nullable": true,
                      "format": "date-time",
                      "example": "2019-01-26T19:14:43Z"
                    },
                    "avatar_url": {
                      "type": "string",
                      "format": "uri"
                    }
                  },
                  "required": [
                    "id",
                    "node_id",
                    "name",
                    "slug",
                    "html_url",
                    "created_at",
                    "updated_at",
                    "avatar_url"
                  ]
                }
              ]
            },
            "name": {
              "description": "The name of the GitHub app",
              "example": "Probot Owners",
              "type": "string"
            },
            "description": {
              "type": "string",
              "example": "The description of the app.",
              "nullable": true
            },
            "external_url": {
              "type": "string",
              "format": "uri",
              "example": "https://example.com"
            },
            "html_url": {
              "type": "string",
              "format": "uri",
              "example": "https://github.com/apps/super-ci"
            },
            "created_at": {
              "type": "string",
              "format": "date-time",
              "example": "2017-07-08T16:18:44-04:00"
            },
            "updated_at": {
              "type": "string",
              "format": "date-time",
              "example": "2017-07-08T16:18:44-04:00"
            },
            "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"
              },
              "example": {
                "issues": "read",
                "deployments": "write"
              }
            },
            "events": {
              "description": "The list of events for the GitHub app. Note that the `installation_target`, `security_advisory`, and `meta` events are not included because they are global events and not specific to an installation.",
              "example": [
                "label",
                "deployment"
              ],
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "installations_count": {
              "description": "The number of installations associated with the GitHub app. Only returned when the integration is requesting details about itself.",
              "example": 5,
              "type": "integer"
            }
          },
          "required": [
            "id",
            "node_id",
            "owner",
            "name",
            "description",
            "external_url",
            "html_url",
            "created_at",
            "updated_at",
            "permissions",
            "events"
          ]
        }
      },
      "required": [
        "id",
        "node_id",
        "task",
        "environment",
        "description",
        "statuses_url",
        "repository_url",
        "url",
        "created_at",
        "updated_at"
      ]
    }
  },
  "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"
  ]
}

Usage

from ocp_agent import OCPAgent

agent = OCPAgent()
await agent.register_api('github')

# Call this tool
result = await agent.call_tool('checksCreate', {
    # Add required parameters here
})