Alerting: Linear as a destination type, opening one issue per incident
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 20/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- backend
Hướng nghiên cứu
Start in packages/backend/src/services/alerts/AlertDestinationDelivery.ts, especially composeLinkUrl, then trace how existing destination types such as Slack are configured and delivered through the alerts services. Read the webhook delivery/signature path and the integration configuration used to connect Slack. Done means a connectable linear destination can create an issue for a trigger, comment on renotify/resolve, link the incident, and composeLinkUrl yields an incident-specific URL.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Written by an AI agent (Claude) on behalf of @jasonkuhrt.
A team that tracks its work in Linear can't send Maple alerts there. Linear isn't a destination type, so getting an incident into Linear means writing and hosting your own webhook endpoint.
Here's what that takes today. It's the Worker we're about to build for Heartbeat:
// Behind a `webhook` destination. Check x-maple-signature first.
// Linear accepts a caller-chosen UUID on create, so ids derived from
// incidentId and x-maple-delivery-key make Maple's retries harmless.
switch (body.eventType) {
case "trigger":
// Linear issueCreate in the team's Triage, id = uuid(incidentId).
case "renotify":
case "resolve":
// Linear commentCreate on issue uuid(incidentId),
// id = uuid(x-maple-delivery-key).
case "test":
// nothing
}
It also needs a Linear API key in the Worker's secrets, so every issue shows the key's owner as its creator, not Maple.
What we'd like to write instead, after connecting Linear once in Maple's integrations the way Slack is connected:
yield* Maple.AlertDestination("linear", {
type: "linear",
name: "Engineering triage",
team_id: "…", // the Linear team whose Triage receives the issues
})
Maple would then open one issue per incident in that team, comment on it at renotify and resolve, link it back to the incident, and show itself as the issue's creator.
Linear's own Sentry integration is the precedent (https://linear.app/docs/sentry). Sentry alert rules can create Linear issues, a Sentry issue can link to a Linear issue, and completing the Linear issue resolves the Sentry one. Maple's error issues could work the same way: create or link a Linear issue from an error issue, and move the error issue to resolved when its Linear issue completes.
One related gap: the webhook reference describes linkUrl as "the incident in the Maple dashboard", but composeLinkUrl in packages/backend/src/services/alerts/AlertDestinationDelivery.ts builds /services/<name>, the same URL for every incident of a service. That's why the Worker above keys on incidentId, and its issue can only link to the service page.
- Ngôn ngữ chính
- TypeScript
- Star
- 1.8k
- Fork
- 120
- Merge trung bình
- 8 giờ 11 phút
- Pull request đã merge (30 ngày)
- 667
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của MapleTechLabs/maple
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
MapleTechLabs/maple#1921 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
MapleTechLabs/maple#1888 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
@maple-dev/alchemy: typed dashboard props, a managed refresh interval, and adopting a dashboard built in the UICó thể đã có người làm @jasonkuhrt đã nhận 2 ngày trước. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
MapleTechLabs/maple#1891 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
MapleTechLabs/maple#1874 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
MapleTechLabs/maple#1873 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của MapleTechLabs/maple
Issue tương tự
-
e2e-failure ready-to-code
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
redhat-developer/rhdh-plugin-export-overlays#4616 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ai-handle
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
nextlevelbuilder/dewee-web-v2#73 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
backend bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
PoCInnovation/Distribox#255 ·
Maintainer thường phản hồi trong vòng 1 ngày