Skip to content

Use deploy_only mode for compute-plan updates once the API client is regenerated #23

Description

@jacobprall

Context

The update_web_service and update_cron_job tools update a service's compute plan via PATCH /v1/services/{id}. The Render API records the new plan but does not apply it until the next successful deploy, so the tools trigger a deploy afterward.

Problem

The follow-up deploy currently uses the default build_and_deploy mode (a full rebuild from source). For a plan-only change, the Render dashboard instead uses deploy_only, which redeploys the last successful build without rebuilding — faster and lower-risk for what is purely an instance-type change.

The public deploy API already supports this: POST /v1/services/{id}/deploys accepts a deployMode field (deploy_only | build_and_deploy, per the DeployMode schema). However, our generated client (pkg/client, generated from renderinc/public-api-schema via oapi-codegen) predates that field — CreateDeployJSONBody only exposes clearCache, commitId, and imageUrl. So deploy_only is currently unreachable from the MCP server.

Proposed work

  1. Regenerate pkg/client from the current public-api-schema so CreateDeployJSONBody includes deployMode.
  2. Add a way to pass deployMode: deploy_only through Repo.DeployService (e.g. an optional param or a dedicated method).
  3. Have the compute-plan update tools trigger the follow-up deploy with deploy_only.

Note: per the schema, deploy_only cannot be combined with commitId, imageUrl, or clearCache.

Acceptance criteria

  • Changing a web service or cron job plan via MCP triggers a deploy_only deploy (no rebuild).
  • The generated client is updated via the normal regeneration process (no manual edits to generated files).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions