* [protocol] Add PrebuildSettings to ProjectSettings
* add migration function
* add migration function and test
* update protocol helper functions
* update prebuild manager
* use new prebuild setting in frontend
* update papi
* fix papi test
* rename var
* fix papi mapping
* deprecation note
* update migration function
* fix prebuild-manager
* fixup server
* fix Enable Prebuilds on Project Settings
* Use Project.getPrebuildSettings
and
* fix countUnabortedPrebuildsSince
* improve usage of default settings
* fix Build Branches select
* fix papi conversion 🤯
* don't save empty pattern strings
* fix papi-server conversion and align naming of prebuild settings
* fix getPrebuildSettings
* [prebuilds] changed prebuild semantics
- no more incremental prebuilds
- always incremental workspace
- never wait for running prebuilds
---------
Co-authored-by: svenefftinge <sven@gitpod.io>
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.ioorapi.<domain>for self-hosted or managed installations. - The API is structured into services with definitions available in components/public-api/gitpod/ as protobuf definitions.