---
title: "GitHub کنیکٹر"
description: "Tajo کے ذریعے Brevo کے ساتھ ریپوزٹری ایونٹس، مسائل، pull requests، اور ڈیولپر سرگرمی کو سنک کرنے کے لیے مکمل GitHub انٹیگریشن گائیڈ۔"
url: https://tajo.io/ur/docs/connectors/custom/github/
markdown: https://tajo.io/ur/docs/connectors/custom/github.md
lang: ur-PK
robots: noindex
---

ابتدائی رسائی کی درخواست کریں

اپنا پہلا نام اور دفتری ای میل پتہ درج کریں۔ ہم Tajo تک رسائی کی درخواست کی تصدیق کے لیے ایک لنک ای میل کریں گے۔

# GitHub کنیکٹر

کنیکٹر کی حیثیت: منصوبہ بند ابھی تیار نہیں ہوا۔ Tajo آج یہ کنیکٹر نہیں چلاتا۔

| ماخذ فیلڈ | منزل فیلڈ | نمونہ قدر |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

ڈیولپر انگیجمنٹ ٹریکنگ، ریلیز اطلاع ورک فلوز، اور کمیونٹی سرگرمی کی نگرانی کے لیے اپنی GitHub ریپوزٹریز کو Tajo کے ذریعے Brevo سے منسلک کریں۔

## جائزہ

| خاصیت | قدر |
| --- | --- |
| **پلیٹ فارم** | GitHub |
| **زمرہ** | حسب ضرورت |
| **سیٹ اپ کی پیچیدگی** | معتدل |
| **آفیشل انٹیگریشن** | نہیں |
| **سنک شدہ ڈیٹا** | ایونٹس، صارفین، ریپوزٹریز |
| **API قسم** | REST API، GraphQL API |
| **توثیق** | GitHub App / Personal Access Token / OAuth 2.0 |
| **بنیادی URL** | `https://api.github.com` |
| **API ورژن** | `2022-11-28` (header پر مبنی ورژننگ) |

## خصوصیات

- **Issue اور PR ٹریکنگ** - مسئلہ اور pull request ایونٹس کو Brevo رابطہ ٹائم لائنز سے سنک کریں
- **ریلیز اطلاعات** - نئی ریپوزٹری ریلیز پر Brevo مہمات کو متحرک کریں
- **Contributor سنک** - کمیونٹی انگیجمنٹ کے لیے GitHub contributors کو Brevo رابطوں سے میپ کریں
- **Star اور fork ٹریکنگ** - ریپوزٹری مقبولیت میٹرکس کی نگرانی کریں
- **ویب ہک ایونٹ فارورڈنگ** - GitHub ایونٹس کو Brevo آٹومیشنز کو آگے بھیجیں
- **ریپوزٹری کیٹلاگ** - ریپوزٹری میٹا ڈیٹا کو Brevo catalog آئٹمز کے طور پر سنک کریں

## ضروریات

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

1. ہدف ریپوزٹریز تک رسائی کے ساتھ GitHub اکاؤنٹ
2. GitHub App یا Personal Access Token (fine-grained تجویز کردہ)
3. ویب ہک کنفیگریشن کے لیے ریپوزٹریز تک ایڈمن رسائی
4. API رسائی کے ساتھ Brevo اکاؤنٹ
5. فعال سبسکرپشن کے ساتھ Tajo اکاؤنٹ

## توثیق

GitHub متعدد توثیقی طریقوں کی حمایت کرتا ہے۔ Tajo تنظیمی سطح کی رسائی کے لیے GitHub Apps استعمال کرنے کی سفارش کرتا ہے۔

### آپشن 1: GitHub App (تجویز کردہ)

1. **Settings** > **Developer settings** > **GitHub Apps** پر جائیں
2. **New GitHub App** پر کلک کریں
3. ان اجازتوں کے ساتھ ایپ کنفیگر کریں:

```
Repository permissions:
  Issues: Read
  Pull requests: Read
  Contents: Read
  Metadata: Read

Organization permissions:
  Members: Read

Subscribe to events:
  Issues
  Pull request
  Push
  Release
  Star
  Fork
```

### آپشن 2: Fine-Grained Personal Access Token

1. **Settings** > **Developer settings** > **Personal access tokens** > **Fine-grained tokens** پر جائیں
2. **Generate new token** پر کلک کریں
3. ہدف ریپوزٹریز منتخب کریں
4. یہ اجازتیں دیں:

```
Repository access: Selected repositories
Permissions:
  Issues: Read-only
  Pull requests: Read-only
  Contents: Read-only
  Metadata: Read-only
```

ٹوکن سیکیورٹی

Fine-grained ٹوکنز کی میعاد ختم ہونے کی تاریخیں ہوتی ہیں۔ میعاد ختم ہونے سے پہلے ٹوکن گردش سیٹ اپ کریں۔ GitHub App انسٹالیشن ٹوکنز خود بخود ریفریش ہوتے ہیں اور پروڈکشن استعمال کے لیے ترجیح دیے جاتے ہیں۔

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

```bash
# GitHub App کا استعمال کرتے ہوئے
tajo connectors install github \
  --app-id $GITHUB_APP_ID \
  --private-key-path ./github-app-key.pem \
  --installation-id $GITHUB_INSTALLATION_ID

# Personal Access Token کا استعمال کرتے ہوئے
tajo connectors install github \
  --token $GITHUB_TOKEN
```

## کنفیگریشن

### بنیادی سیٹ اپ

```yaml
connectors:
  github:
    enabled: true
    auth_type: "github_app"  # or "token"

    repositories:
      - owner/repo-1
      - owner/repo-2

    sync:
      issues: true
      pull_requests: true
      releases: true
      contributors: true
      stars: true

    lists:
      contributors: 20
      stargazers: 21
```

### فیلڈ میپنگ

GitHub صارف ڈیٹا کو Brevo رابطہ خصوصیات سے میپ کریں:

```yaml
field_mapping:
  # Standard fields
  login: GITHUB_USERNAME
  email: email
  name: FIRSTNAME

  # Developer metrics
  contributions: GITHUB_CONTRIBUTIONS
  repositories_count: GITHUB_REPOS
  followers: GITHUB_FOLLOWERS
  created_at: GITHUB_JOINED

  # Custom attributes
  company: COMPANY
  location: LOCATION
  bio: GITHUB_BIO
```

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

Tajo مندرجہ ذیل GitHub REST API اینڈ پوائنٹس کے ساتھ انٹیگریٹ ہوتا ہے:

| اینڈ پوائنٹ | طریقہ | مقصد |
| --- | --- | --- |
| `/repos/{owner}/{repo}/issues` | GET | ریپوزٹری کے مسائل کی فہرست |
| `/repos/{owner}/{repo}/pulls` | GET | Pull requests کی فہرست |
| `/repos/{owner}/{repo}/releases` | GET | ریلیز کی فہرست |
| `/repos/{owner}/{repo}/contributors` | GET | Contributors کی فہرست |
| `/repos/{owner}/{repo}/stargazers` | GET | Stargazers کی فہرست |
| `/repos/{owner}/{repo}/forks` | GET | Forks کی فہرست |
| `/repos/{owner}/{repo}/events` | GET | ریپوزٹری ایونٹس کی فہرست |
| `/users/{username}` | GET | صارف پروفائل حاصل کریں |
| `/orgs/{org}/members` | GET | تنظیمی ممبران کی فہرست |
| `/repos/{owner}/{repo}/hooks` | POST | ویب ہک بنائیں |

## کوڈ مثالیں

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

```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('github', {
  appId: process.env.GITHUB_APP_ID,
  privateKey: process.env.GITHUB_PRIVATE_KEY,
  installationId: process.env.GITHUB_INSTALLATION_ID
});
```

### Contributors کو Brevo سے سنک کریں

```javascript
await tajo.connectors.sync('github', {
  type: 'full',
  resources: ['contributors'],
  repositories: ['owner/repo-1', 'owner/repo-2']
});

const status = await tajo.connectors.status('github');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T11:00:00Z',
//   contributorsCount: 245,
//   issuesTracked: 1890,
//   releasesTracked: 34
// }
```

### ویب ہک ایونٹس کو ہینڈل کریں

```javascript
app.post('/webhooks/github', async (req, res) => {
  const signature = req.get('X-Hub-Signature-256');
  const event = req.get('X-GitHub-Event');

  // ویب ہک سگنیچر کی تصدیق کریں
  if (!verifyGitHubSignature(req.body, signature)) {
    return res.status(401).send('Unauthorized');
  }

  await tajo.connectors.handleWebhook('github', {
    event,
    payload: req.body
  });

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

### ریلیز مہم کو متحرک کریں

```javascript
// نئی ریلیز کو سنیں اور Brevo مہم کو متحرک کریں
tajo.connectors.on('github', 'release.published', async (event) => {
  await tajo.campaigns.trigger('release-announcement', {
    listId: 21,
    params: {
      version: event.release.tag_name,
      release_notes: event.release.body,
      download_url: event.release.html_url
    }
  });
});
```

## ریٹ کی حدود

GitHub توثیق کے طریقے کی بنیاد پر ریٹ کی حدود نافذ کرتا ہے:

| توثیق | بنیادی ریٹ کی حد | Search API |
| --- | --- | --- |
| **غیر توثیق شدہ** | 60 درخواستیں/گھنٹہ | 10 درخواستیں/منٹ |
| **Personal Access Token** | 5,000 درخواستیں/گھنٹہ | 30 درخواستیں/منٹ |
| **GitHub App (installation)** | 5,000 درخواستیں/گھنٹہ | 30 درخواستیں/منٹ |
| **GitHub App (user-to-server)** | 5,000 درخواستیں/گھنٹہ | 30 درخواستیں/منٹ |

مشروط درخواستیں

Tajo API استعمال کو کم کرنے کے لیے مشروط درخواستیں (`If-None-Match` / `If-Modified-Since` ہیڈرز) استعمال کرتا ہے۔ `304 Not Modified` والے ریسپانسز ریٹ کی حدود کے خلاف شمار نہیں ہوتے۔

اضافی حدود:

- **ثانوی ریٹ کی حدود**: 100 سے زیادہ ہم وقت درخواستیں نہیں۔ REST API اینڈ پوائنٹس کے لیے 900 پوائنٹس فی منٹ سے زیادہ نہیں۔
- **GraphQL**: 5,000 پوائنٹس فی گھنٹہ (query cost پیچیدگی کے لحاظ سے مختلف ہوتی ہے)۔

## مسائل کا سراغ

### عام مسائل

| مسئلہ | وجہ | حل |
| --- | --- | --- |
| 401 Unauthorized | میعاد ختم شدہ ٹوکن یا غلط اسناد | ٹوکن دوبارہ تخلیق کریں یا GitHub App دوبارہ انسٹال کریں |
| 403 Forbidden | ناکافی اجازتیں | ٹوکن اسکوپس یا App اجازتیں چیک کریں |
| 404 Not Found | بغیر رسائی کے پرائیویٹ ریپو | ٹوکن یا App کو ریپوزٹری تک رسائی دیں |
| ریٹ کی حد سے تجاوز | بہت زیادہ API کالز | مشروط درخواستیں فعال کریں اور سنک کی تعدد کم کریں |
| ویب ہکس موصول نہیں ہوئے | غلط URL یا فائر وال | تصدیق کریں کہ ویب ہک URL عوامی طور پر قابل رسائی ہے |

### ڈیبگ موڈ

```yaml
connectors:
  github:
    debug: true
    log_level: verbose
    log_webhooks: true
```

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

```bash
tajo connectors test github
# ✓ API authentication successful
# ✓ Repository access verified
# ✓ Issue data readable
# ✓ Webhook delivery active
# ✓ Rate limit healthy (4,850/5,000 remaining)
```

## بہترین طریقے

1. **PATs پر GitHub Apps استعمال کریں** - GitHub Apps granular اجازتیں اور خود بخود ریفریش ہونے والے ٹوکنز فراہم کرتے ہیں
2. **ویب ہک سیکریٹس فعال کریں** - ہمیشہ HMAC-SHA256 کے ساتھ ویب ہک سگنیچرز کی تصدیق کریں
3. **مشروط درخواستیں استعمال کریں** - ریٹ کی حد کے کوٹے کو ضائع کرنے سے بچنے کے لیے ETags کا فائدہ اٹھائیں
4. **بڑے ریسپانسز کو پیجینیٹ کریں** - GitHub فی صفحہ زیادہ سے زیادہ 100 آئٹمز واپس کرتا ہے؛ `Link` ہیڈرز کے ساتھ اتریٹ کریں
5. **کم سرگرمی کے دوران سنک کریں** - پیک ڈیولپمنٹ گھنٹوں کے باہر مکمل سنکس شیڈول کریں
6. **ریٹ کی حد کے ہیڈرز کی نگرانی کریں** - فعال طور پر تھروٹل کرنے کے لیے `X-RateLimit-Remaining` چیک کریں

## سیکیورٹی

- **GitHub App Authentication** - قلیل مدتی installation ٹوکنز کے ساتھ RSA key پر مبنی JWT
- **ویب ہک سگنیچرز** - تمام ویب ہک پے لوڈز پر HMAC-SHA256 سگنیچر کی تصدیق
- **Fine-Grained ٹوکنز** - مخصوص ریپوزٹریز اور اجازتوں تک محدود
- **صرف HTTPS** - تمام API مواصلات TLS 1.2+ کے ذریعے خفیہ کردہ
- **خفیہ کردہ اسٹوریج** - Tajo میں نجی کیز اور ٹوکنز آرام کی حالت میں خفیہ کردہ
- **ٹوکن کی میعاد** - Fine-grained ٹوکنز خود بخود ختم ہو جاتے ہیں؛ گردش الرٹس سیٹ کریں

## متعلقہ وسائل

- [Jira کنیکٹر](https://tajo.io/ur/docs/connectors/custom/jira)
- [Linear کنیکٹر](https://tajo.io/ur/docs/connectors/custom/linear)
- [Notion کنیکٹر](https://tajo.io/ur/docs/connectors/custom/notion)
- [Brevo Contacts API](https://tajo.io/ur/docs/contact-management)
