diff --git a/packages/integrations/src/slack.ts b/packages/integrations/src/slack.ts index be8d98c8..b6d32e77 100644 --- a/packages/integrations/src/slack.ts +++ b/packages/integrations/src/slack.ts @@ -8,18 +8,27 @@ const SLACK_CLIENT_SECRET = process.env.SLACK_CLIENT_SECRET; const SLACK_OAUTH_REDIRECT_URL = process.env.SLACK_OAUTH_REDIRECT_URL; const SLACK_STATE_SECRET = process.env.SLACK_STATE_SECRET; -export const slackInstaller = new InstallProvider({ - clientId: SLACK_CLIENT_ID!, - clientSecret: SLACK_CLIENT_SECRET!, - stateSecret: SLACK_STATE_SECRET, - logLevel: process.env.NODE_ENV === 'development' ? LogLevel.DEBUG : undefined, -}); +export const slackInstaller = SLACK_CLIENT_ID + ? new InstallProvider({ + clientId: SLACK_CLIENT_ID!, + clientSecret: SLACK_CLIENT_SECRET!, + stateSecret: SLACK_STATE_SECRET, + logLevel: + process.env.NODE_ENV === 'development' ? LogLevel.DEBUG : undefined, + }) + : ({ + generateInstallUrl: () => {}, + stateStore: {}, + } as unknown as InstallProvider); export const getSlackInstallUrl = ({ integrationId, organizationId, projectId, }: { integrationId: string; organizationId: string; projectId: string }) => { + if (!SLACK_CLIENT_ID) { + throw new Error('SLACK_CLIENT_ID is not set (slack.ts)'); + } return slackInstaller.generateInstallUrl({ scopes: [ 'incoming-webhook',