https://github.com/aprilnea/linear-notify
๐ Bridge Linear webhooks to Discord, Telegram, Slack and more. Deploy with Docker, Node.js, or serverless platforms like Cloudflare Workers.
https://github.com/aprilnea/linear-notify
discord linear linear-app notification self-hosted serverless telegram webhook
Last synced: 7 months ago
JSON representation
๐ Bridge Linear webhooks to Discord, Telegram, Slack and more. Deploy with Docker, Node.js, or serverless platforms like Cloudflare Workers.
- Host: GitHub
- URL: https://github.com/aprilnea/linear-notify
- Owner: AprilNEA
- License: mit
- Created: 2025-08-31T07:38:03.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-08-31T13:15:28.000Z (7 months ago)
- Last Synced: 2025-09-02T06:04:19.252Z (7 months ago)
- Topics: discord, linear, linear-app, notification, self-hosted, serverless, telegram, webhook
- Language: TypeScript
- Homepage:
- Size: 27.3 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Linear Notify
A webhook forwarder service that receives notifications from [Linear](https://linear.app) 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
```bash
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:
```bash
pnpm run dev
```
### Testing
Run the test suite:
```bash
pnpm run test
```
Run tests with coverage:
```bash
pnpm run test:coverage
```
### Deployment
Deploy to Cloudflare Workers:
```bash
pnpm run deploy
```
### Type Generation
Generate types based on your Worker configuration:
```bash
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