@airnauts/airside-extension-slack
v0.9.1
Published
Slack Incoming Webhook notifier for the Airnauts commenting tool server.
Downloads
614
Readme
@airnauts/airside-extension-slack
Slack Incoming Webhook notification extension for the Airside server. Posts a Block Kit message to a Slack channel whenever a reviewer creates a thread or adds a reply.
Installation
pnpm add @airnauts/airside-extension-slackQuick start
In Slack, create (or pick) an app, enable Incoming Webhooks, and add a webhook to your channel. Copy the
https://hooks.slack.com/services/…URL — the channel is baked into it.Pass the result to
createAirsideServer:
import { createAirsideServer } from '@airnauts/airside-server'
import { slackExtension } from '@airnauts/airside-extension-slack'
createAirsideServer({
repository,
storage,
secretKey: process.env.AIRSIDE_SECRET!,
projectId: 'my-app',
allowedOrigins: ['https://my-app.example.com'],
extensions: slackExtension({
webhookUrl: process.env.AIRSIDE_SLACK_WEBHOOK_URL!,
}),
})API reference
slackExtension(opts)
slackExtension({
webhookUrl: string // Slack Incoming Webhook URL (required)
}): NotificationExtension[]Returns a NotificationExtension[] ready to pass to extensions. Notification failures are isolated — a hung or erroring webhook never breaks the comment write. Each webhook request is bounded by a 3-second timeout.
formatSlackMessage(event)
import { formatSlackMessage } from '@airnauts/airside-extension-slack'
const message: SlackMessage = formatSlackMessage(event)
// { text: string; blocks: unknown[] }Renders a NotificationEvent as a Slack Block Kit message with a plain-text fallback. Exported for testing or custom dispatch.
Types
| Export | Description |
|---|---|
| SlackExtensionOptions | { webhookUrl: string } |
| SlackMessage | { text: string; blocks: unknown[] } |
Configuration / env vars
| Env var | Description |
|---|---|
| AIRSIDE_SLACK_WEBHOOK_URL | Slack Incoming Webhook URL |
Requirements
- Node.js ≥ 18 (or any fetch-capable runtime)
Related packages
@airnauts/airside-server— definesNotificationExtensionandNotificationEvent@airnauts/airside-extension-email— email notification alternative@airnauts/airside-extension-jira— Jira thread-action extension
License
MIT © Airnauts
