Trình Kết Nối Linear
Kết nối Linear với Brevo qua Tajo để theo dõi tiến độ phát triển sản phẩm, đồng bộ dữ liệu team và kích hoạt giao tiếp với khách hàng dựa trên cập nhật trạng thái Linear.
Tổng Quan
| Thuộc Tính | Giá Trị |
|---|---|
| Nền Tảng | Linear |
| Danh Mục | Tùy Chỉnh |
| Độ Phức Tạp Thiết Lập | Dễ |
| Tích Hợp Chính Thức | Không |
| Dữ Liệu Đồng Bộ | Issues, Projects, Cycles, Người Dùng |
| Loại API | GraphQL API |
| Xác Thực | Personal API Key hoặc OAuth 2.0 |
Tính Năng
- Đồng bộ issues - Theo dõi bug reports và feature requests liên quan đến khách hàng
- Cập nhật trạng thái - Kích hoạt thông báo Brevo khi issues đạt trạng thái “Done”
- Theo dõi cycle - Đồng bộ dữ liệu sprint sang thuộc tính Brevo
- Thành viên team - Nhập thành viên Linear sang liên hệ Brevo
- Webhook - Nhận cập nhật theo thời gian thực cho thay đổi issues
Yêu Cầu
Trước khi bắt đầu, hãy đảm bảo bạn có:
- Tài khoản Linear (Free hoặc Pro)
- Personal API Key từ Linear settings
- Tài khoản Brevo với quyền truy cập API
- Tài khoản Tajo
Xác Thực
Personal API Key
curl -X POST "https://api.linear.app/graphql" \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "{ viewer { id email name } }"}'Tạo API keys trong Linear Settings > API > Personal API keys.
Kết Nối với Tajo
tajo connectors install linear \ --api-key $LINEAR_API_KEYCấu Hình
Thiết Lập Cơ Bản
connectors: linear: enabled: true api_key: "${LINEAR_API_KEY}"
sync: issues: true users: true projects: false cycles: false
# Filter theo team teams: - "Engineering" - "Product"Ánh Xạ Trường
field_mapping: creator.email: email creator.name: FULLNAME title: LINEAR_ISSUE_TITLE state.name: LINEAR_STATUS priority: LINEAR_PRIORITY createdAt: LINEAR_CREATED_DATE completedAt: LINEAR_COMPLETED_DATEGraphQL Queries
# Lấy issues mới nhấtquery GetIssues($after: String) { issues( first: 100 after: $after orderBy: updatedAt ) { pageInfo { hasNextPage endCursor } nodes { id title state { name } priority creator { email name } createdAt updatedAt } }}Ví Dụ Code
Khởi Tạo Trình Kết Nối
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
await tajo.connectors.connect('linear', { apiKey: process.env.LINEAR_API_KEY});Đồng Bộ Issues Sang Brevo
// Đồng bộ Linear issues sang sự kiện Brevoawait tajo.connectors.sync('linear', { type: 'incremental', resources: ['issues'], since: '2024-01-01', filter: { teamName: 'Engineering', state: 'Done' }});GraphQL API
Linear sử dụng GraphQL API, không phải REST. Tất cả requests phải là POST tới /graphql. Chọn chỉ những trường cần thiết để tối ưu hóa hiệu năng.
Ngân Sách Độ Phức Tạp
Linear giới hạn query complexity. Tránh query lồng quá sâu. Tajo tự động chia queries phức tạp thành nhiều requests nhỏ hơn.
Giới Hạn Tốc Độ
| Giới Hạn | Giá Trị |
|---|---|
| Yêu cầu API | 1.500 yêu cầu/giờ |
| Query complexity | 10.000 điểm/giờ |
| Webhooks | Không giới hạn sự kiện |
Khắc Phục Sự Cố
| Sự Cố | Nguyên Nhân | Giải Pháp |
|---|---|---|
| Lỗi xác thực | API key không hợp lệ | Xác minh API key trong Linear Settings |
| Lỗi complexity | Query quá phức tạp | Giảm trường được yêu cầu |
| Webhook không nhận | URL không thể truy cập | Kiểm tra URL webhook trong Linear Settings |