---
title: "GitHub konnektor"
description: "Teljes GitHub integrációs útmutató repository-események, hibajegyek, pull requestek és fejlesztői tevékenységek Brevóval való szinkronizációjához a Tajo segítségével."
url: https://tajo.io/hu/docs/connectors/custom/github/
markdown: https://tajo.io/hu/docs/connectors/custom/github.md
lang: hu-HU
robots: noindex
---

Kérj korai hozzáférést

Adja meg keresztnevét és munkahelyi e-mail-címét. Küldünk egy hivatkozást, amellyel megerősítheti a Tajo-hozzáférési kérelmét.

# GitHub konnektor

Konnektor állapota: Tervezett Még nem készült el. A Tajo ma nem futtatja ezt a konnektort.

| Forrásmező | Célmező | Mintaérték |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Csatlakoztasd a GitHub repository-jaidat a Brevóhoz fejlesztői elköteleződés-követéshez, kiadási értesítési munkafolyamatokhoz és közösségi tevékenység-figyeléshez a Tajo segítségével.

## Áttekintés

| Tulajdonság | Érték |
| --- | --- |
| **Platform** | GitHub |
| **Kategória** | Egyéni |
| **Telepítés bonyolultsága** | Közepes |
| **Hivatalos integráció** | Nem |
| **Szinkronizált adatok** | Események, Felhasználók, Repository-k |
| **API típus** | REST API, GraphQL API |
| **Hitelesítés** | GitHub App / Személyes hozzáférési token / OAuth 2.0 |
| **Alap URL** | `https://api.github.com` |
| **API verzió** | `2022-11-28` (fejléc alapú verziózás) |

## Funkciók

- **Hibajegy és PR követés** – Hibajegy és pull request események szinkronizálása Brevo kapcsolati idővonalakra
- **Kiadási értesítések** – Brevo kampányok indítása új repository kiadásokon
- **Közreműködő-szinkronizáció** – GitHub közreműködők leképezése Brevo kapcsolatokhoz közösségi elköteleződéshez
- **Csillag és fork követés** – Repository népszerűségi mutatók figyelése
- **Webhook-esemény továbbítás** – GitHub események továbbítása Brevo automatizálásokhoz
- **Repository katalógus** – Repository metaadatok szinkronizálása Brevo katalóguselemekként

## Előfeltételek

Mielőtt elkezdenéd, győződj meg róla, hogy rendelkezel:

1. Egy GitHub fiókkal hozzáféréssel a célrepository-khoz
2. Egy GitHub App-pal vagy személyes hozzáférési tokennel (részletes ajánlott)
3. Adminisztrátori hozzáféréssel a repository-khoz webhook-konfiguráláshoz
4. Egy Brevo fiókkal API-hozzáféréssel
5. Egy Tajo fiókkal aktív előfizetéssel

## Hitelesítés

A GitHub több hitelesítési módszert támogat. A Tajo a GitHub Apps használatát javasolja szervezeti szintű hozzáféréshez.

### 1. lehetőség: GitHub App (ajánlott)

1. Menj a **Settings** > **Developer settings** > **GitHub Apps** menüpontra
2. Kattints a **New GitHub App** gombra
3. Konfiguráld az alkalmazást ezekkel az engedélyekkel:

```
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. lehetőség: Részletes személyes hozzáférési token

1. Menj a **Settings** > **Developer settings** > **Personal access tokens** > **Fine-grained tokens** menüpontra
2. Kattints a **Generate new token** gombra
3. Válaszd ki a célrepository-kat
4. Add meg ezeket az engedélyeket:

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

Token biztonság

A részletes tokenek lejárati dátummal rendelkeznek. Állíts be token rotációt a lejárat előtt. A GitHub App telepítési tokenek automatikusan frissülnek, és éles használatra ajánlottak.

### Csatlakozás a Tajóhoz

```bash
# Using GitHub App
tajo connectors install github \
  --app-id $GITHUB_APP_ID \
  --private-key-path ./github-app-key.pem \
  --installation-id $GITHUB_INSTALLATION_ID

# Using Personal Access Token
tajo connectors install github \
  --token $GITHUB_TOKEN
```

## Konfiguráció

### Alapbeállítás

```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
```

### Mezőleképezés

Képezd le a GitHub felhasználói adatokat Brevo kapcsolat-attribútumokhoz:

```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 végpontok

A Tajo az alábbi GitHub REST API végpontokkal integrálódik:

| Végpont | Módszer | Cél |
| --- | --- | --- |
| `/repos/{owner}/{repo}/issues` | GET | Repository hibajegyek listázása |
| `/repos/{owner}/{repo}/pulls` | GET | Pull requestek listázása |
| `/repos/{owner}/{repo}/releases` | GET | Kiadások listázása |
| `/repos/{owner}/{repo}/contributors` | GET | Közreműködők listázása |
| `/repos/{owner}/{repo}/stargazers` | GET | Csillagozók listázása |
| `/repos/{owner}/{repo}/forks` | GET | Fork-ok listázása |
| `/repos/{owner}/{repo}/events` | GET | Repository-események listázása |
| `/users/{username}` | GET | Felhasználói profil lekérése |
| `/orgs/{org}/members` | GET | Szervezeti tagok listázása |
| `/repos/{owner}/{repo}/hooks` | POST | Webhook létrehozása |

## Kódpéldák

### A konnektor inicializálása

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

### Közreműködők szinkronizálása a Brevóba

```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
// }
```

### Webhook-események kezelése

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

  // Verify webhook signature
  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');
});
```

### Kiadási kampány indítása

```javascript
// Listen for new releases and trigger Brevo campaign
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
    }
  });
});
```

## Ráta-korlátok

A GitHub hitelesítési módszer alapján alkalmaz ráta-korlátokat:

| Hitelesítés | Elsődleges ráta-korlát | Keresési API |
| --- | --- | --- |
| **Nem hitelesített** | 60 kérés/óra | 10 kérés/perc |
| **Személyes hozzáférési token** | 5 000 kérés/óra | 30 kérés/perc |
| **GitHub App (telepítés)** | 5 000 kérés/óra | 30 kérés/perc |
| **GitHub App (user-to-server)** | 5 000 kérés/óra | 30 kérés/perc |

Feltételes kérések

A Tajo feltételes kéréseket (`If-None-Match` / `If-Modified-Since` fejlécek) használ az API fogyasztás csökkentéséhez. A `304 Not Modified` válaszok nem számítanak bele a ráta-korlátba.

További korlátok:

- **Másodlagos ráta-korlátok**: Legfeljebb 100 egyidejű kérés. Legfeljebb 900 pont percenként a REST API végpontokon.
- **GraphQL**: 5 000 pont óránként (a lekérdezési költség a komplexitástól függ).

## Hibaelhárítás

### Gyakori problémák

| Probléma | Ok | Megoldás |
| --- | --- | --- |
| 401 Unauthorized | Lejárt token vagy rossz hitelesítő adatok | Generáld újra a tokent vagy telepítsd újra a GitHub App-ot |
| 403 Forbidden | Elégtelen engedélyek | Ellenőrizd a token hatóköröket vagy az App engedélyeket |
| 404 Not Found | Privát repository hozzáférés nélkül | Adj repository hozzáférést a tokenhez vagy az App-hoz |
| Ráta-korlát túllépve | Túl sok API hívás | Engedélyezd a feltételes kéréseket és csökkentsd a szinkronizálás gyakoriságát |
| Webhookok nem érkeznek meg | Helytelen URL vagy tűzfal | Ellenőrizd, hogy a webhook URL nyilvánosan elérhető |

### Hibakeresési mód

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

### Kapcsolat tesztelése

```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)
```

## Legjobb gyakorlatok

1. **Használj GitHub App-okat PAT-ok helyett** – A GitHub App-ok részletes engedélyeket és automatikusan frissülő tokeneket biztosítanak
2. **Engedélyezz webhook titkokat** – Mindig ellenőrizd a webhook aláírásokat HMAC-SHA256-tal
3. **Használj feltételes kéréseket** – Használj ETaget a ráta-korlát kvóta pazarlásának elkerülésére
4. **Lapozd az nagy válaszokat** – A GitHub oldalanként max. 100 elemet ad vissza; iterálj a `Link` fejlécekkel
5. **Kis aktivitáskor szinkronizálj** – Ütemezd a teljes szinkronizálásokat a csúcsfejlesztési időpontokon kívülre
6. **Figyeld a ráta-korlát fejléceket** – Ellenőrizd az `X-RateLimit-Remaining` értékét a proaktív korlátozáshoz

## Biztonság

- **GitHub App hitelesítés** – RSA kulcs alapú JWT rövid életű telepítési tokenekkel
- **Webhook aláírások** – HMAC-SHA256 aláírás-ellenőrzés minden webhook hasznos terhelésen
- **Részletes tokenek** – Adott repository-kra és engedélyekre korlátozva
- **Csak HTTPS** – Minden API kommunikáció TLS 1.2+-on keresztül titkosítva
- **Titkosított tárolás** – Privát kulcsok és tokenek titkosítva tárolódnak a Tajóban
- **Token lejárat** – A részletes tokenek automatikusan lejárnak; állíts be rotációs riasztásokat

## Kapcsolódó források

- [Jira konnektor](https://tajo.io/hu/docs/connectors/custom/jira)
- [Linear konnektor](https://tajo.io/hu/docs/connectors/custom/linear)
- [Notion konnektor](https://tajo.io/hu/docs/connectors/custom/notion)
- [Brevo Contacts API](https://tajo.io/hu/docs/contact-management)
