90 lines
2.5 KiB
TypeScript
90 lines
2.5 KiB
TypeScript
import { posthogHelper } from '@botpress/common'
|
|
import { IntegrationDefinition } from '@botpress/sdk'
|
|
import * as sdk from '@botpress/sdk'
|
|
import proactiveConversation from 'bp_modules/proactive-conversation'
|
|
import deletable from './bp_modules/deletable'
|
|
import filesReadonly from './bp_modules/files-readonly'
|
|
import listable from './bp_modules/listable'
|
|
|
|
import { actions, channels, events, configuration, configurations, user, states, entities } from './definitions'
|
|
|
|
export const INTEGRATION_NAME = 'linear'
|
|
export const INTEGRATION_VERSION = '2.6.1'
|
|
|
|
export default new IntegrationDefinition({
|
|
name: INTEGRATION_NAME,
|
|
version: INTEGRATION_VERSION,
|
|
title: 'Linear',
|
|
description:
|
|
'Manage your projects autonomously. Have your bot participate in discussions, manage issues and teams, and track progress.',
|
|
icon: 'icon.svg',
|
|
readme: 'hub.md',
|
|
configuration,
|
|
configurations,
|
|
channels,
|
|
identifier: {
|
|
extractScript: 'extract.vrl',
|
|
},
|
|
user,
|
|
actions,
|
|
events,
|
|
states,
|
|
entities,
|
|
secrets: {
|
|
CLIENT_ID: {
|
|
description: 'The client ID of your Linear OAuth app.',
|
|
},
|
|
CLIENT_SECRET: {
|
|
description: 'The client secret of your Linear OAuth app.',
|
|
},
|
|
DESK_CLIENT_ID: {
|
|
description: 'The client ID of your Linear OAuth app.',
|
|
},
|
|
DESK_CLIENT_SECRET: {
|
|
description: 'The client secret of your Linear OAuth app.',
|
|
},
|
|
WEBHOOK_SIGNING_SECRET: {
|
|
description: 'The signing secret of your Linear webhook.',
|
|
},
|
|
...posthogHelper.COMMON_SECRET_NAMES,
|
|
},
|
|
attributes: {
|
|
category: 'Project Management',
|
|
repo: 'botpress',
|
|
},
|
|
})
|
|
.extend(listable, ({ entities }) => ({
|
|
entities: { item: entities.issue },
|
|
actions: {
|
|
list: { name: 'issueList' },
|
|
},
|
|
}))
|
|
.extend(deletable, ({ entities }) => ({
|
|
entities: { item: entities.issue },
|
|
actions: {
|
|
delete: { name: 'issueDelete' },
|
|
},
|
|
events: {
|
|
deleted: { name: 'issueDeleted' },
|
|
},
|
|
}))
|
|
.extend(proactiveConversation, ({ entities }) => ({
|
|
entities: {
|
|
conversation: entities.issueConversation,
|
|
},
|
|
actions: { getOrCreateConversation: { name: 'getOrCreateIssueConversation' } },
|
|
}))
|
|
.extend(filesReadonly, ({}) => ({
|
|
entities: {},
|
|
actions: {
|
|
listItemsInFolder: {
|
|
name: 'filesReadonlyListItemsInFolder',
|
|
attributes: { ...sdk.WELL_KNOWN_ATTRIBUTES.HIDDEN_IN_STUDIO },
|
|
},
|
|
transferFileToBotpress: {
|
|
name: 'filesReadonlyTransferFileToBotpress',
|
|
attributes: { ...sdk.WELL_KNOWN_ATTRIBUTES.HIDDEN_IN_STUDIO },
|
|
},
|
|
},
|
|
}))
|