Skip to main content
Glama

updateBuild

Modify Jenkins build display names and descriptions to maintain accurate tracking and documentation of build processes.

Instructions

Update build display name and/or description

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
buildNumberNoBuild number (optional, defaults to last build)
descriptionNoNew description for the build
displayNameNoNew display name for the build
jobFullNameYesFull path of the Jenkins job

Implementation Reference

  • The main handler function that performs the updateBuild tool logic: fetches build info, attempts to update description via POST to submitDescription endpoint, notes displayName not supported via REST, returns success/failure with details.
    export async function updateBuild(client, args) { const { jobFullName, buildNumber = null, displayName = null, description = null, } = args; const jobPath = encodeJobPath(jobFullName); const buildPath = buildNumber || "lastBuild"; try { const buildInfo = await client.get( `${client.baseUrl}/job/${jobPath}/${buildPath}/api/json?tree=number,url,description` ); if (buildInfo.status !== 200) { return failure( "updateBuild", `Build not found: ${jobFullName}#${buildPath}`, { statusCode: buildInfo.status } ); } const actualBuildNumber = buildInfo.data.number; const buildUrl = buildInfo.data.url; const updates = []; // Update description if (description !== null && description !== undefined) { try { const formData = new URLSearchParams(); formData.append("description", description); const response = await client.post( `${client.baseUrl}/job/${jobPath}/${actualBuildNumber}/submitDescription`, formData.toString(), { headers: { "Content-Type": "application/x-www-form-urlencoded", }, } ); if (isSuccessStatus(response.status)) { updates.push({ field: "description", success: true, newValue: description, statusCode: response.status, }); } else { updates.push({ field: "description", success: false, error: `Failed with status ${response.status}`, }); } } catch (error) { updates.push({ field: "description", success: false, error: error.message, }); } } // Display name - not available via REST API if (displayName !== null && displayName !== undefined) { updates.push({ field: "displayName", success: false, error: "Not supported via REST API", workaround: "Use Jenkins Script Console with Groovy script", }); } return updates.some((u) => u.success) ? success("updateBuild", { buildNumber: actualBuildNumber, buildUrl, updates, }) : failure("updateBuild", "No updates applied", { buildNumber: actualBuildNumber, buildUrl, updates, }); } catch (error) { return formatError(error, "updateBuild"); } }
  • Input schema defining parameters for updateBuild: jobFullName (required), optional buildNumber, displayName, description.
    inputSchema: { type: "object", properties: { jobFullName: { type: "string", description: "Full path of the Jenkins job", }, buildNumber: { type: "integer", description: "Build number (optional, defaults to last build)", }, displayName: { type: "string", description: "New display name for the build", }, description: { type: "string", description: "New description for the build", }, }, required: ["jobFullName"], },
  • Tool registration in toolRegistry object, including name, description, inputSchema, and reference to the handler function imported from build-management.js.
    updateBuild: { name: "updateBuild", description: "Update build display name and/or description", inputSchema: { type: "object", properties: { jobFullName: { type: "string", description: "Full path of the Jenkins job", }, buildNumber: { type: "integer", description: "Build number (optional, defaults to last build)", }, displayName: { type: "string", description: "New display name for the build", }, description: { type: "string", description: "New description for the build", }, }, required: ["jobFullName"], }, handler: updateBuild, },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/umishra1504/Jenkins-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server