---
title: "موصل Jira"
description: "دليل التكامل الكامل لـ Jira Cloud لمزامنة المشاكل والمشاريع وبيانات نشاط الفريق مع Brevo عبر Tajo."
url: https://tajo.io/ar/docs/connectors/custom/jira/
markdown: https://tajo.io/ar/docs/connectors/custom/jira.md
lang: ar-SA
robots: noindex
---

اطلب الوصول المبكر

أدخل اسمك الأول وعنوان بريدك الإلكتروني للعمل. سنرسل إليك رابطًا لتأكيد طلب الوصول إلى Tajo.

# موصل Jira

حالة الموصل: مخطط له لم يُبنَ بعد. لا يشغّل Tajo هذا الموصل اليوم.

| حقل المصدر | حقل الوجهة | قيمة نموذجية |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

اربط مثيل Jira Cloud الخاص بك بـ Brevo لتتبع المشاكل التي تواجه العملاء، ورؤية تذاكر الدعم، وإشعارات معالم المشروع عبر Tajo.

## نظرة عامة

| الخاصية | القيمة |
| --- | --- |
| **المنصة** | Jira Cloud |
| **الفئة** | مخصص |
| **تعقيد الإعداد** | متوسط |
| **تكامل رسمي** | لا |
| **البيانات المتزامنة** | المشاكل، المشاريع، المستخدمون، الأحداث |
| **نوع API** | REST API v3 |
| **المصادقة** | OAuth 2.0 (3LO) / API Token (Basic Auth) |
| **عنوان URL الأساسي** | `https://your-domain.atlassian.net/rest/api/3/` |

## الميزات

- **مزامنة أحداث المشاكل** - إعادة توجيه أحداث إنشاء وتحديث وحل المشاكل إلى جداول زمنية لجهات اتصال Brevo
- **تتبع تذاكر العملاء** - ربط مشاكل Jira بجهات اتصال Brevo لرؤية الدعم
- **تنبيهات معالم المشروع** - تشغيل حملات Brevo عند إصدارات النسخ وإتمام السبرنت
- **بيانات سعة الفريق** - مزامنة مقاييس عبء العمل للوحات تحكم التشغيل
- **أحداث تغيير الحالة** - تتبع انتقالات سير عمل المشاكل كأحداث Brevo
- **مزامنة التعليقات** - إعادة توجيه التعليقات التي تواجه العملاء إلى سجلات نشاط Brevo

## المتطلبات المسبقة

قبل أن تبدأ، تأكد من توفر ما يلي:

1. مثيل Jira Cloud (Jira Software أو Jira Service Management أو Jira Work Management)
2. وصول المسؤول لإنشاء تطبيقات OAuth أو توليد رموز API
3. بريد حساب Atlassian المرتبط برمز API الخاص بك
4. حساب Brevo مع وصول API
5. حساب Tajo مع اشتراك نشط

## المصادقة

يدعم Jira Cloud عدة طرق للمصادقة.

### الخيار 1: OAuth 2.0 (3LO) - موصى به

1. اذهب إلى [developer.atlassian.com](https://developer.atlassian.com/console/myapps/)
2. انقر على **Create** > **OAuth 2.0 integration**
3. اضبط عنوان URL للرد: `https://app.tajo.io/callbacks/jira`
4. أضف هذه النطاقات:

```
read:jira-work
read:jira-user
write:jira-work
read:me
```

هيكل عنوان URL لـ API عند استخدام OAuth 2.0:

```
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}
```

### الخيار 2: API Token (Basic Auth)

1. اذهب إلى [id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
2. انقر على **Create API token**
3. سمّه “Tajo Integration”

```bash
# Basic Auth: email as username, API token as password
curl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \
  -u "email@example.com:$JIRA_API_TOKEN" \
  -H "Accept: application/json"
```

قيود رمز API

رموز API مرتبطة بحسابات مستخدمين فرديين. إذا تم تعطيل المستخدم، سينقطع التكامل. استخدم OAuth 2.0 لعمليات النشر في الإنتاج.

### الاتصال بـ Tajo

```bash
# Using OAuth 2.0
tajo connectors install jira \
  --client-id $JIRA_CLIENT_ID \
  --client-secret $JIRA_CLIENT_SECRET \
  --cloud-id $JIRA_CLOUD_ID

# Using API Token
tajo connectors install jira \
  --site-url your-domain.atlassian.net \
  --email admin@example.com \
  --api-token $JIRA_API_TOKEN
```

## الإعداد

### الإعداد الأساسي

```yaml
connectors:
  jira:
    enabled: true
    site_url: "your-domain.atlassian.net"
    auth_type: "oauth2"  # or "basic"

    sync:
      issues: true
      projects: true
      users: true
      comments: true
      worklogs: false

    projects:
      - key: "SUPPORT"
        sync_to_list: 22
      - key: "PRODUCT"
        sync_to_list: 23

    issue_types:
      - Bug
      - Story
      - Task
      - Support Request
```

### ربط الحقول

اربط حقول المشاكل والمستخدمين في Jira بسمات Brevo:

```yaml
field_mapping:
  # User fields
  accountId: JIRA_ACCOUNT_ID
  emailAddress: email
  displayName: FIRSTNAME

  # Issue fields mapped to contact events
  issue_key: LAST_TICKET_KEY
  issue_status: LAST_TICKET_STATUS
  issue_priority: LAST_TICKET_PRIORITY
  issue_created: LAST_TICKET_DATE
  resolution: LAST_TICKET_RESOLUTION
```

## نقاط نهاية API

يتكامل Tajo مع نقاط نهاية Jira Cloud REST API v3 التالية:

| نقطة النهاية | الطريقة | الغرض |
| --- | --- | --- |
| `/rest/api/3/search` | POST | البحث في المشاكل باستخدام JQL |
| `/rest/api/3/issue/{issueIdOrKey}` | GET | جلب تفاصيل المشكلة |
| `/rest/api/3/issue` | POST | إنشاء مشكلة |
| `/rest/api/3/project` | GET | عرض جميع المشاريع |
| `/rest/api/3/project/{projectIdOrKey}` | GET | جلب تفاصيل المشروع |
| `/rest/api/3/user/search` | GET | البحث عن المستخدمين |
| `/rest/api/3/myself` | GET | جلب المستخدم الحالي |
| `/rest/api/3/issue/{issueIdOrKey}/comment` | GET | جلب تعليقات المشكلة |
| `/rest/api/3/webhook` | POST | تسجيل webhooks |
| `/rest/api/3/status` | GET | جلب جميع الحالات |
| `/rest/api/3/priority` | GET | جلب جميع الأولويات |

## أمثلة البرمجة

### تهيئة الموصل

```javascript
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('jira', {
  clientId: process.env.JIRA_CLIENT_ID,
  clientSecret: process.env.JIRA_CLIENT_SECRET,
  cloudId: process.env.JIRA_CLOUD_ID
});
```

### مزامنة مشاكل الدعم

```javascript
// Sync Jira support issues to Brevo contacts
await tajo.connectors.sync('jira', {
  type: 'incremental',
  resources: ['issues'],
  jql: 'project = SUPPORT AND updated >= -24h',
  batchSize: 50
});

const status = await tajo.connectors.status('jira');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T12:00:00Z',
//   issuesTracked: 4560,
//   projectsMonitored: 3,
//   usersLinked: 890
// }
```

### معالجة Webhooks الخاصة بـ Jira

```javascript
app.post('/webhooks/jira', async (req, res) => {
  const event = req.body;

  await tajo.connectors.handleWebhook('jira', {
    event: event.webhookEvent,
    payload: {
      issueKey: event.issue?.key,
      issueType: event.issue?.fields?.issuetype?.name,
      status: event.issue?.fields?.status?.name,
      reporter: event.issue?.fields?.reporter?.emailAddress,
      assignee: event.issue?.fields?.assignee?.emailAddress
    }
  });

  res.status(200).send('OK');
});
```

### البحث عن المشاكل حسب العميل

```javascript
// Find all issues reported by a specific customer
const issues = await tajo.connectors.query('jira', {
  jql: 'reporter = "customer@example.com" ORDER BY created DESC',
  maxResults: 20,
  fields: ['summary', 'status', 'priority', 'created']
});
```

## حدود المعدل

يفرض Jira Cloud حدود معدل لضمان استقرار المنصة:

| السياق | حد المعدل |
| --- | --- |
| **REST API** | ~100 طلب لكل 10 ثوانٍ لكل مستخدم |
| **الطلبات المتزامنة** | 10 طلبات طويلة الأمد متزامنة |
| **العمليات المجمّعة** | تختلف حسب نقطة النهاية |

الترقيم

يستخدم Jira ترقيمًا قائمًا على الإزاحة مع المعاملين `startAt` و `maxResults`. حجم الصفحة الافتراضي 50، والحد الأقصى 100. يعالج Tajo الترقيم تلقائيًا.

يُرجع Jira استجابة `429 Too Many Requests` عند تجاوز حدود المعدل، مع ترويسة `Retry-After` تشير إلى وقت إعادة المحاولة.

## استكشاف الأخطاء

### المشكلات الشائعة

| المشكلة | السبب | الحل |
| --- | --- | --- |
| 401 Unauthorized | رمز غير صالح أو انتهاء OAuth | حدّث رمز OAuth أو أعد توليد رمز API |
| 403 Forbidden | أذونات غير كافية | تحقق من أن المستخدم لديه وصول إلى المشروع المطلوب |
| أخطاء JQL | بناء استعلام غير صالح | تحقق من JQL في بحث المشاكل في Jira أولاً |
| Webhook لا يصل | جدار حماية يحجب | تأكد من أن عنوان webhook متاح عبر الإنترنت |
| حقول مفقودة | الحقل غير موجود في الاستجابة | أضف الحقل إلى معامل `fields` أو استخدم `expand` |

### وضع التصحيح

```yaml
connectors:
  jira:
    debug: true
    log_level: verbose
    log_api_calls: true
```

### اختبار الاتصال

```bash
tajo connectors test jira
# ✓ API authentication successful
# ✓ Project access verified
# ✓ Issue search operational
# ✓ User lookup available
# ✓ Webhook registration active
```

## أفضل الممارسات

1. **استخدم OAuth 2.0 للإنتاج** - يتجنب الاعتماد على حسابات المستخدمين الفرديين
2. **رشّح باستخدام JQL** - زامن فقط المشاكل ذات الصلة لتقليل استدعاءات API
3. **استخدم webhooks للوقت الفعلي** - تجنب الاستطلاع؛ سجّل webhooks لتغييرات المشاكل
4. **احترم تنسيق ADF** - يستخدم Jira v3 تنسيق Atlassian Document Format للحقول الغنية
5. **اربط المشروع بالقائمة** - أنشئ قوائم Brevo منفصلة لكل مشروع Jira
6. **تعامل مع الترقيم** - كرر دائمًا عبر جميع الصفحات للحصول على بيانات كاملة

## الأمان

- **OAuth 2.0 (3LO)** - مصادقة آمنة قائمة على الرموز مع رموز تحديث
- **API Token + Basic Auth** - بيانات اعتماد مشفرة بـ Base64 عبر HTTPS
- **HTTPS فقط** - جميع اتصالات API مشفرة عبر TLS 1.2+
- **وصول محدد النطاق** - نطاقات OAuth تحد من وصول API إلى الموارد المطلوبة
- **أمان Atlassian Cloud** - بنية تحتية معتمدة SOC 2 Type II
- **التخزين المشفر** - بيانات الاعتماد مشفرة في حالة السكون في Tajo

## موارد ذات صلة

- [موصل GitHub](https://tajo.io/ar/docs/connectors/custom/github)
- [موصل Linear](https://tajo.io/ar/docs/connectors/custom/linear)
- [موصل Gorgias](https://tajo.io/ar/docs/connectors/support/gorgias)
- [Brevo Contacts API](https://tajo.io/ar/docs/contact-management)
