Skip to main content
Glama
by cuongdev

create_pipeline_webhook

Set up a webhook to automatically trigger AWS CodePipeline actions by defining pipeline name, webhook name, target action, authentication, and event filters.

Instructions

Create a webhook for a pipeline to enable automatic triggering

Input Schema

NameRequiredDescriptionDefault
authenticationYesAuthentication method for the webhook
authenticationConfigurationNoAuthentication configuration based on the authentication type
filtersNoEvent filters for the webhook
pipelineNameYesName of the pipeline
targetActionYesThe name of the action in the pipeline that processes the webhook
webhookNameYesName for the webhook

Input Schema (JSON Schema)

{ "properties": { "authentication": { "description": "Authentication method for the webhook", "enum": [ "GITHUB_HMAC", "IP", "UNAUTHENTICATED" ], "type": "string" }, "authenticationConfiguration": { "description": "Authentication configuration based on the authentication type", "properties": { "AllowedIpRange": { "description": "Allowed IP range for IP authentication", "type": "string" }, "SecretToken": { "description": "Secret token for GITHUB_HMAC authentication", "type": "string" } }, "type": "object" }, "filters": { "description": "Event filters for the webhook", "items": { "properties": { "jsonPath": { "description": "JSON path to filter events", "type": "string" }, "matchEquals": { "description": "Value to match in the JSON path", "type": "string" } }, "required": [ "jsonPath" ], "type": "object" }, "type": "array" }, "pipelineName": { "description": "Name of the pipeline", "type": "string" }, "targetAction": { "description": "The name of the action in the pipeline that processes the webhook", "type": "string" }, "webhookName": { "description": "Name for the webhook", "type": "string" } }, "required": [ "pipelineName", "webhookName", "targetAction", "authentication" ], "type": "object" }

Implementation Reference

  • The main handler function that implements the tool logic: creates a webhook for the specified AWS CodePipeline using putWebhook, registers it with registerWebhookWithThirdParty, and returns formatted response with details.
    export async function createPipelineWebhook( codePipelineManager: CodePipelineManager, input: { pipelineName: string; webhookName: string; targetAction: string; authentication: string; authenticationConfiguration?: { SecretToken?: string; AllowedIpRange?: string; }; filters?: Array<{ jsonPath: string; matchEquals?: string; }>; } ) { const { pipelineName, webhookName, targetAction, authentication, authenticationConfiguration = {}, filters = [] } = input; const codepipeline = codePipelineManager.getCodePipeline(); // Create the webhook const response = await codepipeline.putWebhook({ webhook: { name: webhookName, targetPipeline: pipelineName, targetAction: targetAction, filters: filters.map(filter => ({ jsonPath: filter.jsonPath, matchEquals: filter.matchEquals })), authentication, authenticationConfiguration } }).promise(); // Register the webhook await codepipeline.registerWebhookWithThirdParty({ webhookName }).promise(); // Extract webhook details safely const webhookDetails = { name: webhookName, url: response.webhook ? String(response.webhook.url) : undefined, targetPipeline: pipelineName, targetAction: targetAction }; return { content: [ { type: "text", text: JSON.stringify({ message: "Pipeline webhook created and registered successfully", webhookDetails }, null, 2), }, ], }; }
  • The input schema defining parameters for the create_pipeline_webhook tool, including pipeline details, authentication, and filters.
    export const createPipelineWebhookSchema = { name: "create_pipeline_webhook", description: "Create a webhook for a pipeline to enable automatic triggering", inputSchema: { type: "object", properties: { pipelineName: { type: "string", description: "Name of the pipeline" }, webhookName: { type: "string", description: "Name for the webhook" }, targetAction: { type: "string", description: "The name of the action in the pipeline that processes the webhook" }, authentication: { type: "string", description: "Authentication method for the webhook", enum: ["GITHUB_HMAC", "IP", "UNAUTHENTICATED"] }, authenticationConfiguration: { type: "object", description: "Authentication configuration based on the authentication type", properties: { SecretToken: { type: "string", description: "Secret token for GITHUB_HMAC authentication" }, AllowedIpRange: { type: "string", description: "Allowed IP range for IP authentication" } } }, filters: { type: "array", description: "Event filters for the webhook", items: { type: "object", properties: { jsonPath: { type: "string", description: "JSON path to filter events" }, matchEquals: { type: "string", description: "Value to match in the JSON path" } }, required: ["jsonPath"] } } }, required: ["pipelineName", "webhookName", "targetAction", "authentication"], }, } as const;
  • src/index.ts:61-63 (registration)
    Import of the handler function and schema from the tools module.
    createPipelineWebhook, createPipelineWebhookSchema } from "./tools/create_pipeline_webhook.js";
  • src/index.ts:202-217 (registration)
    Dispatch/registration of the tool handler in the CallToolRequest switch statement.
    case "create_pipeline_webhook": { return await createPipelineWebhook(codePipelineManager, input as { pipelineName: string; webhookName: string; targetAction: string; authentication: string; authenticationConfiguration?: { SecretToken?: string; AllowedIpRange?: string; }; filters?: Array<{ jsonPath: string; matchEquals?: string; }>; }); }
  • src/index.ts:124-126 (registration)
    Registration of the tool schema in the ListTools response array.
    createPipelineWebhookSchema, getPipelineMetricsSchema, ],

Other Tools

Related Tools

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/cuongdev/mcp-codepipeline-server'

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