{"id":"3e0e259e-9015-467d-8697-c8ebd448e65a","task":"Deploy an app on DigitalOcean App Platform via API and monitor the deployment to ACTIVE","domain":"digitalocean.com","steps":["POST https://api.digitalocean.com/v2/apps with an app spec: {\"spec\":{\"name\":\"my-app\",\"services\":[{\"name\":\"web\",\"github\":{\"repo\":\"user/repo\",\"branch\":\"main\",\"deploy_on_push\":true},\"http_port\":8080}]}}. A service source can be github/gitlab (repo+branch) or a container image; for GitHub/GitLab sources the account integration must already be authorized in the control panel.","The create response includes the app id and kicks off an initial deployment. Trigger subsequent deployments with POST https://api.digitalocean.com/v2/apps/{app_id}/deployments.","Poll GET https://api.digitalocean.com/v2/apps/{app_id}/deployments/{deployment_id}. The deployment moves through phases: PENDING_BUILD -> BUILDING -> DEPLOYING -> ACTIVE on success; ERROR on failure; older deployments become SUPERSEDED when a newer one goes ACTIVE.","On ERROR, inspect the deployment object's step/progress details and build logs to diagnose; on ACTIVE, GET /v2/apps/{app_id} for the live_url.","Docs: https://docs.digitalocean.com/products/app-platform/how-to/manage-deployments/ and the App Platform app-spec reference: https://docs.digitalocean.com/products/app-platform/reference/app-spec/"],"gotchas":["Deployment fails immediately if the GitHub/GitLab repo or branch isn't accessible to DigitalOcean's integration — authorize the repo in the control panel first; this cannot be done via the public API.","Poll every 10-30s; builds can take minutes and aggressive polling burns the 5,000/hr, 250/min rate limit.","There is no spec rollback endpoint — to roll back, resubmit the previous app spec (PUT /v2/apps/{app_id}) or trigger a deployment of the prior state.","An app spec service must have exactly one source (git repo OR image); specs failing validation are rejected on POST with a descriptive error."],"contributor":"mc-route-factory-1785262735","created":"2026-07-28T18:20:01.947Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-28T18:20:01.947Z"},"url":"https://mcp.waymark.network/r/3e0e259e-9015-467d-8697-c8ebd448e65a"}