Linear کنیکٹر

صارفین پر مرکوز مسائل کی ٹریکنگ، پروڈکٹ اپ ڈیٹ اطلاعات، اور ڈیولپمنٹ سنگ میل مہمات کے لیے اپنے Linear ورک اسپیس کو Tajo کے ذریعے Brevo سے منسلک کریں۔

جائزہ

خاصیتقدر
پلیٹ فارمLinear
زمرہحسب ضرورت
سیٹ اپ کی پیچیدگیآسان
آفیشل انٹیگریشننہیں
سنک شدہ ڈیٹامسائل، پروجیکٹس، صارفین، ایونٹس
API قسمGraphQL API
توثیقOAuth 2.0 / Personal API Key
بنیادی URLhttps://api.linear.app/graphql

خصوصیات

  • Issue ایونٹ سنک - issue create، update، اور complete ایونٹس کو Brevo رابطہ ٹائم لائنز کو آگے بھیجیں
  • پروجیکٹ سنگ میل ٹریکنگ - جب پروجیکٹس اہم سنگ میل تک پہنچیں تو Brevo مہمات کو متحرک کریں
  • کسٹمر issue لنکنگ - سپورٹ مرئیت کے لیے Linear مسائل کو Brevo رابطوں سے جوڑیں
  • لیبل پر مبنی سیگمنٹیشن - Linear لیبلز کو Brevo رابطہ خصوصیات سے میپ کریں
  • Cycle اینالیٹکس - ٹیم پرفارمنس رپورٹنگ کے لیے sprint/cycle کی تکمیل کا ڈیٹا سنک کریں
  • ویب ہک سے چلنے والی آٹومیشن - Linear webhooks کے ذریعے ریئل ٹائم ایونٹ فارورڈنگ

ضروریات

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:

  1. ایڈمن رسائی کے ساتھ Linear ورک اسپیس
  2. Personal API key یا OAuth ایپلی کیشن کنفیگر کردہ
  3. API رسائی کے ساتھ Brevo اکاؤنٹ
  4. فعال سبسکرپشن کے ساتھ Tajo اکاؤنٹ

توثیق

Linear Personal API keys اور OAuth 2.0 کی حمایت کرتا ہے۔

آپشن 1: Personal API Key

  1. Linear > Settings > API > Personal API keys پر جائیں
  2. Create key پر کلک کریں
  3. اسے “Tajo Integration” نام دیں
  4. تخلیق شدہ key کاپی کریں (lin_api_ سے شروع ہوتی ہے)
Terminal window
curl -X POST https://api.linear.app/graphql \
-H "Authorization: $LINEAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ viewer { id name email } }"}'

آپشن 2: OAuth 2.0

متعدد ورک اسپیسز کی خدمت کرنے والے انٹیگریشنز کے لیے:

  1. linear.app/settings/api/applications پر OAuth ایپلی کیشن بنائیں
  2. redirect URI کنفیگر کریں: https://app.tajo.io/callbacks/linear
  3. اسکوپس درخواست کریں: read، write، issues:create، comments:create

GraphQL API

Linear خصوصی طور پر GraphQL API استعمال کرتا ہے۔ تمام queries اور mutations ایک واحد اینڈ پوائنٹ سے گزرتے ہیں: https://api.linear.app/graphql۔ Tajo تمام GraphQL query تعمیر کو خود بخود سنبھالتا ہے۔

Tajo سے منسلک کرنا

Terminal window
# Personal API Key کا استعمال کرتے ہوئے
tajo connectors install linear \
--api-key $LINEAR_API_KEY
# OAuth کا استعمال کرتے ہوئے
tajo connectors install linear \
--client-id $LINEAR_CLIENT_ID \
--client-secret $LINEAR_CLIENT_SECRET

کنفیگریشن

بنیادی سیٹ اپ

connectors:
linear:
enabled: true
sync:
issues: true
projects: true
cycles: true
users: true
teams:
- key: "ENG"
sync_to_list: 38
- key: "SUPPORT"
sync_to_list: 39
issue_states:
- Backlog
- Todo
- "In Progress"
- Done
- Canceled

فیلڈ میپنگ

Linear صارف اور issue ڈیٹا کو Brevo خصوصیات سے میپ کریں:

field_mapping:
# User fields
id: LINEAR_USER_ID
email: email
name: FIRSTNAME
# Issue metrics mapped to contact events
last_issue_identifier: LAST_LINEAR_ISSUE
last_issue_state: LAST_ISSUE_STATUS
last_issue_priority: LAST_ISSUE_PRIORITY
total_issues: LINEAR_ISSUE_COUNT
# Project data
current_project: ACTIVE_PROJECT
team_key: LINEAR_TEAM

ایونٹ میپنگ

event_mapping:
Issue.create: ISSUE_CREATED
Issue.update: ISSUE_UPDATED
Issue.remove: ISSUE_DELETED
Comment.create: COMMENT_ADDED
Project.update: PROJECT_UPDATED
Cycle.update: CYCLE_UPDATED

API اینڈ پوائنٹس

Linear ایک واحد GraphQL اینڈ پوائنٹ استعمال کرتا ہے۔ Tajo کی جانب سے استعمال کی جانے والی کلیدی queries اور mutations:

آپریشنقسممقصد
issuesQueryمسائل کی فہرست اور فلٹر
issueQueryID سے واحد issue حاصل کریں
projectsQueryتمام پروجیکٹس کی فہرست
cyclesQuerycycles (sprints) کی فہرست
teamsQueryورک اسپیس ٹیموں کی فہرست
usersQueryورک اسپیس ممبران کی فہرست
viewerQueryتوثیق شدہ صارف کی معلومات حاصل کریں
issueCreateMutationنیا issue بنائیں
issueUpdateMutationموجودہ issue کو اپ ڈیٹ کریں
commentCreateMutationissue میں تبصرہ شامل کریں
webhookCreateMutationویب ہک رجسٹر کریں

مثال GraphQL Query

query GetIssues($filter: IssueFilter, $first: Int, $after: String) {
issues(filter: $filter, first: $first, after: $after) {
nodes {
id
identifier
title
state { name }
priority
assignee { email name }
labels { nodes { name } }
createdAt
updatedAt
}
pageInfo {
hasNextPage
endCursor
}
}
}

کوڈ مثالیں

کنیکٹر کو شروع کریں

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
});

مسائل کو سنک کریں

await tajo.connectors.sync('linear', {
type: 'incremental',
resources: ['issues'],
teams: ['ENG', 'SUPPORT'],
since: '2024-01-01'
});
const status = await tajo.connectors.status('linear');
console.log(status);
// {
// connected: true,
// lastSync: '2024-03-15T18:00:00Z',
// issuesTracked: 3200,
// projectsMonitored: 8,
// usersLinked: 45
// }

Linear ویب ہکس کو ہینڈل کریں

app.post('/webhooks/linear', async (req, res) => {
const event = req.body;
// ویب ہک سگنیچر کی تصدیق کریں
const signature = req.get('Linear-Signature');
if (!verifyLinearSignature(req.body, signature)) {
return res.status(401).send('Unauthorized');
}
await tajo.connectors.handleWebhook('linear', {
type: event.type,
action: event.action,
payload: {
issueId: event.data?.id,
identifier: event.data?.identifier,
title: event.data?.title,
state: event.data?.state?.name,
assigneeEmail: event.data?.assignee?.email
}
});
res.status(200).send('OK');
});

Brevo ایونٹ سے Issue بنائیں

// جب Brevo رابطہ درخواست جمع کرے تو Linear issue بنائیں
tajo.events.on('contact.event', async (event) => {
if (event.name === 'FEATURE_REQUEST') {
await tajo.connectors.create('linear', {
teamId: 'ENG',
title: `Feature Request: ${event.data.subject}`,
description: event.data.description,
priority: 3,
labelIds: ['feature-request']
});
}
});

ریٹ کی حدود

Linear اپنے GraphQL API پر ریٹ کی حدود نافذ کرتا ہے:

حد کی قسمقدر
درخواست کی شرحفی API key 1,500 درخواستیں فی گھنٹہ
Query پیچیدگیفی درخواست 10,000 پیچیدگی پوائنٹس
پیجینیشنفی صفحہ زیادہ سے زیادہ 250 nodes (ڈیفالٹ 50)
ویب ہکسلامحدود آنے والے ایونٹس

پیچیدگی کا بجٹ

Linear پیچیدگی پر مبنی ریٹ محدود کرنے کا نظام استعمال کرتا ہے۔ سادہ queries کم پوائنٹس خرچ کرتے ہیں۔ Tajo صرف ضروری فیلڈز کی درخواست کرکے اور مؤثر پیجینیشن کا استعمال کرکے queries کو بہتر بناتا ہے تاکہ پیچیدگی کم ہو۔

حدوں سے تجاوز ہونے پر Linear Retry-After ہیڈر کے ساتھ 429 Too Many Requests واپس کرتا ہے۔

مسائل کا سراغ

عام مسائل

مسئلہوجہحل
401 Unauthorizedغیر معتبر یا منسوخ شدہ API keyLinear Settings میں نیا API key تخلیق کریں
Query خرابیاںغیر معتبر GraphQL syntaxLinear کے API explorer کا استعمال کرتے ہوئے queries کی تصدیق کریں
غائب مسائلٹیم تک رسائی محدودیقینی بنائیں کہ API key مالک کو ہدف ٹیموں تک رسائی ہے
ویب ہک فائر نہیں ہو رہاغلط URL یا غیر فعالLinear Settings > API > Webhooks میں ویب ہک کی حالت چیک کریں
پیجینیشن نامکملغائب after cursorیقینی بنائیں کہ پیجینیشن hasNextPage false ہونے تک لوپ کرے

ڈیبگ موڈ

connectors:
linear:
debug: true
log_level: verbose
log_queries: true

کنکشن ٹیسٹ کریں

Terminal window
tajo connectors test linear
# ✓ GraphQL API connection successful
# ✓ Workspace access verified
# ✓ Team list readable
# ✓ Issue query operational
# ✓ Webhook registration available

بہترین طریقے

  1. ریئل ٹائم کے لیے ویب ہکس استعمال کریں - issue تبدیلیوں کے لیے پولنگ کے بجائے ویب ہکس رجسٹر کریں
  2. ٹیم کے ذریعے فلٹر کریں - API کے استعمال کو کم کرنے کے لیے صرف متعلقہ ٹیموں سے مسائل سنک کریں
  3. GraphQL queries کو بہتر بنائیں - پیچیدگی کی حدود میں رہنے کے لیے صرف ضروری فیلڈز کی درخواست کریں
  4. لیبلز کو سیگمنٹس سے میپ کریں - Brevo رابطہ سیگمنٹیشن کو چلانے کے لیے Linear لیبلز کا استعمال کریں
  5. پیجینیشن کو ہینڈل کریں - مکمل ڈیٹا کے لیے ہمیشہ hasNextPage چیک کریں اور endCursor استعمال کریں
  6. ویب ہک سگنیچرز کی تصدیق کریں - ہمیشہ Linear-Signature ہیڈر کی توثیق کریں

سیکیورٹی

  • API Key توثیق - ورک اسپیس تک محدود Personal keys
  • OAuth 2.0 - متعدد ورک اسپیس انٹیگریشنز کے لیے محفوظ تفویض کا فلو
  • صرف HTTPS - تمام API مواصلات TLS 1.2+ کے ذریعے خفیہ کردہ
  • ویب ہک سگنیچرز - HMAC پر مبنی سگنیچر کی تصدیق
  • خفیہ کردہ اسٹوریج - Tajo میں API keys آرام کی حالت میں خفیہ کردہ
  • SOC 2 تعمیل - Linear پلیٹ فارم SOC 2 Type II سند یافتہ ہے

متعلقہ وسائل

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI معاون

السلام علیکم! دستاویزات کے بارے میں کچھ بھی پوچھیں۔