Files
sim/apps/sim/triggers/linear/project_created.ts

81 lines
2.1 KiB
TypeScript

import { LinearIcon } from '@/components/icons'
import { buildProjectOutputs, linearSetupInstructions } from '@/triggers/linear/utils'
import type { TriggerConfig } from '@/triggers/types'
export const linearProjectCreatedTrigger: TriggerConfig = {
id: 'linear_project_created',
name: 'Linear Project Created',
provider: 'linear',
description: 'Trigger workflow when a new project is created in Linear',
version: '1.0.0',
icon: LinearIcon,
subBlocks: [
{
id: 'webhookUrlDisplay',
title: 'Webhook URL',
type: 'short-input',
readOnly: true,
showCopyButton: true,
useWebhookUrl: true,
placeholder: 'Webhook URL will be generated',
mode: 'trigger',
condition: {
field: 'selectedTriggerId',
value: 'linear_project_created',
},
},
{
id: 'webhookSecret',
title: 'Webhook Secret',
type: 'short-input',
placeholder: 'Enter a strong secret',
description: 'Validates that webhook deliveries originate from Linear.',
password: true,
required: false,
mode: 'trigger',
condition: {
field: 'selectedTriggerId',
value: 'linear_project_created',
},
},
{
id: 'triggerSave',
title: '',
type: 'trigger-save',
hideFromPreview: true,
mode: 'trigger',
triggerId: 'linear_project_created',
condition: {
field: 'selectedTriggerId',
value: 'linear_project_created',
},
},
{
id: 'triggerInstructions',
title: 'Setup Instructions',
hideFromPreview: true,
type: 'text',
defaultValue: linearSetupInstructions('Project (create)'),
mode: 'trigger',
condition: {
field: 'selectedTriggerId',
value: 'linear_project_created',
},
},
],
outputs: buildProjectOutputs(),
webhook: {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Linear-Event': 'Project',
'Linear-Delivery': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
'Linear-Signature': 'sha256...',
'User-Agent': 'Linear-Webhook',
},
},
}