Open Context Protocol is live! 🚀 Read the launch post
reposCreateDeploymentStatus

reposCreateDeploymentStatus

Create a deployment status

Details

  • Method: POST
  • Path: /repos/{owner}/{repo}/deployments/{deployment_id}/statuses
  • Operation ID: repos/create-deployment-status

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"
  },
  "deployment_id": {
    "description": "deployment_id parameter",
    "required": true,
    "location": "path",
    "type": "integer"
  },
  "state": {
    "description": "The state of the status. When you set a transient deployment to `inactive`, the deployment will be shown as `destroyed` in GitHub.",
    "required": true,
    "location": "body",
    "type": "string",
    "enum": [
      "error",
      "failure",
      "inactive",
      "in_progress",
      "queued",
      "pending",
      "success"
    ]
  },
  "target_url": {
    "description": "The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment.\n\n> [!NOTE]\n> It's recommended to use the `log_url` parameter, which replaces `target_url`.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "log_url": {
    "description": "The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `\"\"`",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "description": {
    "description": "A short description of the status. The maximum description length is 140 characters.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "environment": {
    "description": "Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. If not defined, the environment of the previous status on the deployment will be used, if it exists. Otherwise, the environment of the deployment will be used.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "environment_url": {
    "description": "Sets the URL for accessing your environment. Default: `\"\"`",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "auto_inactive": {
    "description": "Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true`",
    "required": false,
    "location": "body",
    "type": "boolean"
  }
}

Response Schema

{
  "title": "Deployment Status",
  "description": "The status of a deployment.",
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1"
    },
    "id": {
      "type": "integer",
      "format": "int64",
      "example": 1
    },
    "node_id": {
      "type": "string",
      "example": "MDE2OkRlcGxveW1lbnRTdGF0dXMx"
    },
    "state": {
      "description": "The state of the status.",
      "enum": [
        "error",
        "failure",
        "inactive",
        "pending",
        "success",
        "queued",
        "in_progress"
      ],
      "example": "success",
      "type": "string"
    },
    "creator": {
      "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"
      ],
      "nullable": true
    },
    "description": {
      "description": "A short description of the status.",
      "default": "",
      "type": "string",
      "maxLength": 140,
      "example": "Deployment finished successfully."
    },
    "environment": {
      "description": "The environment of the deployment that the status is for.",
      "default": "",
      "type": "string",
      "example": "production"
    },
    "target_url": {
      "description": "Closing down notice: the URL to associate with this status.",
      "default": "",
      "type": "string",
      "format": "uri",
      "example": "https://example.com/deployment/42/output"
    },
    "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"
    },
    "deployment_url": {
      "type": "string",
      "format": "uri",
      "example": "https://api.github.com/repos/octocat/example/deployments/42"
    },
    "repository_url": {
      "type": "string",
      "format": "uri",
      "example": "https://api.github.com/repos/octocat/example"
    },
    "environment_url": {
      "description": "The URL for accessing your environment.",
      "default": "",
      "type": "string",
      "format": "uri",
      "example": "https://staging.example.com/"
    },
    "log_url": {
      "description": "The URL to associate with this status.",
      "default": "",
      "type": "string",
      "format": "uri",
      "example": "https://example.com/deployment/42/output"
    },
    "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",
    "state",
    "creator",
    "description",
    "deployment_url",
    "target_url",
    "repository_url",
    "url",
    "created_at",
    "updated_at"
  ]
}

Usage

from ocp_agent import OCPAgent

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

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