gitpod/components/public-api-server
Brad Harris adf4e66cf6
Add CreateAndStartWorkspace to public-api (#18515)
* setting up CreateAndStartWorkspace handler

* adjust args

* adding createWorkspace scope for desktop app

* add getToken scope to desktop app oauth client

* remove for now

* adding region

* adding getToken while in here
2023-08-23 16:06:49 +02:00
..
2022-12-08 13:05:19 -03:00
2023-08-15 09:17:40 +02:00
2023-08-15 09:17:40 +02:00
2023-08-18 08:57:43 +02:00
2022-12-08 13:05:19 -03:00

Public API Server

⚠️ Public API is currently experimental and under development. We will provide public announcements once maturity of the API moves into alpha/beta and stable.

This component holds implementation of Gitpod's public API. API specification for this server can be found in public-api.

Motivation

As more companies and engineers embrace cloud development environments, the need for a first class, managed and versioned API will grow. Providing a first class Public API enabled the community to build on top of Gitpod, automate and orchestrate use cases beyond the core focus of Gitpod. The API will act as a catalyst to further reduce toil from development environments and will enable richer integrations with Integrated Development Environments (IDEs) and platforms.

Goal

  • Provide a first class Public API which is the canonical way to access Gitpod functionality programatically
  • Offer a versioned API with compatibility guarantees and clear upgrade path
  • Enable, and catalyze, community integrations and workflows beyond what Gitpod offers today

Usage

The public API will initially be offered as a gRPC service. Clients for various languages will be available. At the moment, the API is in early stages and clients are not available.

Roadmap

The roadmap and progress towards a stable release of the API is tracked in Epic: Public Gitpod API.

Architecture

  • The API will be exposed on api.gitpod.io or api.<domain> for self-hosted or managed installations.
  • The API is structured into services with definitions available in components/public-api/gitpod/ as protobuf definitions.