English | 简体中文
Rust middleware that syncs Linear events to Lark / Feishu notifications.
Runs as a native server (Tokio) or a Cloudflare Worker (WASM).
- Group notifications — Issue create / update posts an interactive card to a Lark group, color-coded by priority. Rapid-fire updates are debounced into a single message.
- DM on assign — Assigning an issue sends a private message to the assignee's Lark account, matched by email.
- Link previews — Paste a
linear.appURL in Lark and it unfurls into a summary card via Linear's GraphQL API. - Webhook signature verification — HMAC-SHA256 for Linear, token verification for Lark.
| Method | Path | Purpose |
|---|---|---|
POST |
/webhook |
Linear webhook receiver |
POST |
/lark/event |
Lark event callback (challenge + link preview) |
GET |
/health |
Health check |
export LINEAR_WEBHOOK_SECRET=your_secret
export LARK_WEBHOOK_URL=https://open.larksuite.com/open-apis/bot/v2/hook/xxx
cargo runSee Configuration for the full environment variable reference.
| Platform | Guide |
|---|---|
| Railway / Docker | docs/deploy-railway.md |
| Cloudflare Workers | docs/deploy-cloudflare-workers.md |
- Create a Lark test group with a custom bot. Add a webhook in Linear.
ngrok http 3000to get a public URL.cargo run, point the Linear webhook tohttps://<NGROK_URL>/webhook.