Skip to main content
Glama
register-trigger.ts2.23 kB
import { createTrigger, TriggerStrategy } from '@activepieces/pieces-framework'; import { githubApiCall, githubCommon } from '../common'; import { githubAuth } from '../../'; import { HttpMethod } from '@activepieces/pieces-common'; export const githubRegisterTrigger = ({ name, displayName, description, sampleData, }: { name: string; displayName: string; description: string; sampleData: object; }) => createTrigger({ auth: githubAuth, name: `trigger_${name}`, displayName, description, props: { repository: githubCommon.repositoryDropdown, }, sampleData, type: TriggerStrategy.WEBHOOK, async onEnable(context) { const { repo, owner } = context.propsValue.repository!; const response = await githubApiCall<{ id: number }>({ accessToken: context.auth.access_token, method: HttpMethod.POST, resourceUri: `/repos/${owner}/${repo}/hooks`, body: { name: 'web', active: true, events: [name], config: { url: context.webhookUrl, content_type: 'json', insecure_ssl: '0', }, }, }); await context.store.put<WebhookInformation>(`github_${name}_trigger`, { webhookId: response.body.id, owner: owner, repo: repo, }); }, async onDisable(context) { const response = await context.store.get<WebhookInformation>( `github_${name}_trigger` ); if (response !== null && response !== undefined) { await githubApiCall({ accessToken: context.auth.access_token, method: HttpMethod.DELETE, resourceUri: `/repos/${response.owner}/${response.repo}/hooks/${response.webhookId}`, }); } }, async run(context) { console.debug('payload received', context.payload.body); if (isVerificationCall(context.payload.body as Record<string, unknown>)) { return []; } return [context.payload.body]; }, }); function isVerificationCall(payload: Record<string, any>) { return payload['zen'] !== undefined; } interface WebhookInformation { webhookId: number; repo: string; owner: string; }

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/activepieces/activepieces'

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