Skip to content

πŸ”” Bridge Linear webhooks to Discord, Telegram, Slack and more. Deploy with Docker, Node.js, or serverless platforms like Cloudflare Workers.

License

Notifications You must be signed in to change notification settings

AprilNEA/linear-notify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Linear Notify

A webhook forwarder service that receives notifications from Linear and forwards them to various messaging platforms with rich formatting.

Features

  • πŸš€ 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

Supported Platforms

  • βœ… Discord - Currently supported
  • πŸ”„ Telegram - Coming soon
  • πŸ“‹ More platforms - Slack, Teams, and others planned

Setup

Prerequisites

  • Node.js 18+
  • A Cloudflare account
  • Discord webhook URL
  • Linear workspace with webhook access

Installation

npm install

Configuration

Set up the following environment variables in your Cloudflare Worker:

  • DISCORD_WEBHOOK_URL: Your Discord webhook URL
  • LINEAR_WEBHOOK_SECRET: (Optional) Linear webhook secret for signature validation

Development

Start the development server:

pnpm run dev

Testing

Run the test suite:

pnpm run test

Run tests with coverage:

pnpm run test:coverage

Deployment

Deploy to Cloudflare Workers:

pnpm run deploy

Type Generation

Generate types based on your Worker configuration:

pnpm run cf-typegen

Usage

Discord Integration

  1. Create a Discord webhook in your desired channel
  2. Set the DISCORD_WEBHOOK_URL environment variable
  3. 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.

Webhook Endpoint

  • Discord: POST /discord/webhook
  • Health Check: GET / - Returns service status

Development

The project uses:

  • Hono - Fast web framework for Cloudflare Workers
  • Linear SDK - Official Linear API SDK
  • Vitest - Testing framework
  • TypeScript - Type safety

Project Structure

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

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Run the test suite
  6. Submit a pull request

License

MIT

Roadmap

  • Telegram bot integration
  • Slack integration
  • Microsoft Teams support
  • Webhook replay functionality
  • Message customization templates
  • Multiple destination support per webhook

About

πŸ”” Bridge Linear webhooks to Discord, Telegram, Slack and more. Deploy with Docker, Node.js, or serverless platforms like Cloudflare Workers.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published