{ "name": "save_release", "description": "Create or update a release. If `id` is provided, updates the existing release; otherwise creates a new one. When creating, `name` and `pipeline` are required. Release status is modeled as the release pipeline stage.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "id": { "description": "Release ID or slug to update. Omit to create a new release.", "type": "string" }, "name": { "description": "Release name (required when creating)", "type": "string" }, "description": { "description": "Release description", "type": "string" }, "version": { "description": "Version identifier", "type": "string" }, "pipeline": { "description": "Release pipeline ID, slug, or exact name (required when creating)", "type": "string" }, "stage": { "description": "Release stage ID, exact name, or lifecycle type within the release pipeline", "type": "string" }, "startDate": { "description": "Estimated start date (ISO YYYY-MM-DD, null to remove)", "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "targetDate": { "description": "Estimated completion date (ISO YYYY-MM-DD, null to remove)", "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "createdAt": { "description": "Import/create timestamp (ISO DateTime)", "type": "string" }, "startedAt": { "description": "Started timestamp (ISO DateTime, null to remove)", "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "completedAt": { "description": "Completed timestamp (ISO DateTime, null to remove)", "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "commitSha": { "description": "Commit SHA associated with the release", "type": "string" } }, "additionalProperties": false } }