A webhook forwarder service that receives notifications from Linear and forwards them to various messaging platforms with rich formatting.
- π Discord Integration: Receives Linear webhooks and sends beautifully formatted messages to Discord channels
- π Secure: Validates webhook signatures to ensure authenticity
- β‘ Fast: Built on Cloudflare Workers for global edge deployment
- π§ͺ Well Tested: Comprehensive test coverage with Vitest
- β Discord - Currently supported
- π Telegram - Coming soon
- π More platforms - Slack, Teams, and others planned
- Node.js 18+
- A Cloudflare account
- Discord webhook URL
- Linear workspace with webhook access
npm install
Set up the following environment variables in your Cloudflare Worker:
DISCORD_WEBHOOK_URL
: Your Discord webhook URLLINEAR_WEBHOOK_SECRET
: (Optional) Linear webhook secret for signature validation
Start the development server:
pnpm run dev
Run the test suite:
pnpm run test
Run tests with coverage:
pnpm run test:coverage
Deploy to Cloudflare Workers:
pnpm run deploy
Generate types based on your Worker configuration:
pnpm run cf-typegen
- Create a Discord webhook in your desired channel
- Set the
DISCORD_WEBHOOK_URL
environment variable - Configure Linear to send webhooks to:
https://your-worker-domain.workers.dev/discord/webhook
The service will automatically format Linear events (issues, comments, status changes, etc.) into rich Discord embeds.
- Discord:
POST /discord/webhook
- Health Check:
GET /
- Returns service status
The project uses:
- Hono - Fast web framework for Cloudflare Workers
- Linear SDK - Official Linear API SDK
- Vitest - Testing framework
- TypeScript - Type safety
src/
βββ index.ts # Main application entry point
βββ linear.ts # Linear webhook validation
βββ libs/
β βββ discord.ts # Discord message formatting and sending
βββ routes/
βββ discord.ts # Discord webhook route handler
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
MIT
- Telegram bot integration
- Slack integration
- Microsoft Teams support
- Webhook replay functionality
- Message customization templates
- Multiple destination support per webhook