mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add POST /api/v2/templatebuilder/compose endpoint (#26351)
> [!NOTE] > This PR was authored by Coder Agents on behalf of @jeremyruppel. Part 4 of DEVEX-277 (POST /api/v2/templatebuilder/compose). Adds the HTTP handler, route wiring, and integration tests for the compose endpoint. The handler accepts a JSON request with a base template ID and optional modules with variable overrides, renders them via `Compose`/`BundleTar`, and returns the tar archive directly with `Content-Type: application/x-tar`. The registry URL comes from the deployment config (`CODER_TEMPLATE_BUILDER_REGISTRY_URL`). RBAC uses `policy.ActionCreate` on `rbac.ResourceTemplate.AnyOrganization()`. Integration tests cover: base-only compose, base with modules, unknown base/module errors, missing base template ID, and feature-disabled 404.
This commit is contained in:
@@ -406,7 +406,8 @@ func assertProduce(t *testing.T, comment SwaggerComment) {
|
||||
(comment.router == "/api/v2/debug/coordinator" && comment.method == "get") ||
|
||||
(comment.router == "/api/v2/debug/tailnet" && comment.method == "get") ||
|
||||
(comment.router == "/api/v2/workspaces/{workspace}/acl" && comment.method == "patch") ||
|
||||
(comment.router == "/api/v2/init-script/{os}/{arch}" && comment.method == "get") {
|
||||
(comment.router == "/api/v2/init-script/{os}/{arch}" && comment.method == "get") ||
|
||||
(comment.router == "/api/v2/templatebuilder/compose" && comment.method == "post") {
|
||||
return // Exception: HTTP 200 is returned without response entity
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user