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

reposCreateDeployment

Create a deployment

Details

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

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"
  },
  "ref": {
    "description": "The ref to deploy. This can be a branch, tag, or SHA.",
    "required": true,
    "location": "body",
    "type": "string"
  },
  "task": {
    "description": "Specifies a task to execute (e.g., `deploy` or `deploy:migrations`).",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "auto_merge": {
    "description": "Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch.",
    "required": false,
    "location": "body",
    "type": "boolean"
  },
  "required_contexts": {
    "description": "The [status](https://docs.github.com/rest/commits/statuses) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts.",
    "required": false,
    "location": "body",
    "type": "array"
  },
  "payload": {
    "description": "",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "environment": {
    "description": "Name for the target deployment environment (e.g., `production`, `staging`, `qa`).",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "description": {
    "description": "Short description of the deployment.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "transient_environment": {
    "description": "Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false`",
    "required": false,
    "location": "body",
    "type": "boolean"
  },
  "production_environment": {
    "description": "Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise.",
    "required": false,
    "location": "body",
    "type": "boolean"
  }
}

Response Schema

{
  "title": "Deployment",
  "description": "A request for a specific ref(branch,sha,tag) to be deployed",
  "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",
      "type": "integer",
      "format": "int64",
      "example": 42
    },
    "node_id": {
      "type": "string",
      "example": "MDEwOkRlcGxveW1lbnQx"
    },
    "sha": {
      "type": "string",
      "example": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d"
    },
    "ref": {
      "description": "The ref to deploy. This can be a branch, tag, or sha.",
      "example": "topic-branch",
      "type": "string"
    },
    "task": {
      "description": "Parameter to specify a task to execute",
      "example": "deploy",
      "type": "string"
    },
    "payload": {
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": true
        },
        {
          "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
    },
    "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
    },
    "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",
    "sha",
    "ref",
    "task",
    "environment",
    "creator",
    "payload",
    "description",
    "statuses_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('reposCreateDeployment', {
    # Add required parameters here
})