Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

GitHub-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

Illustratie · voorbeelddata

Voorbeeld van synchronisatie

Eén record controleren

Bron

GitHub

Connectorstatus: Gepland

Bestemming

Je andere tool

Connectorstatus: Eigen tool

BronveldDoelveldVoorbeeldwaarde
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Opstellen
  2. Eén record controleren
  3. Deze versie goedkeuren

Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.

Verbind je GitHub-repositories met Brevo voor developer-engagementtracking, release-notificatieworkflows en monitoring van community-activiteit via Tajo.

Overzicht

EigenschapWaarde
PlatformGitHub
CategorieCustom
SetupcomplexiteitGemiddeld
Officiële integratieNee
Gesynchroniseerde dataEvents, Gebruikers, Repositories
API-typeREST API, GraphQL API
AuthenticatieGitHub App / Personal Access Token / OAuth 2.0
Base URLhttps://api.github.com
API-versie2022-11-28 (header-gebaseerde versionering)

Functies

  • Issue- en PR-tracking - Synchroniseer issue- en pull request-events naar Brevo-contacttimelines
  • Release-notificaties - Trigger Brevo-campagnes bij nieuwe repository-releases
  • Contributor-sync - Map GitHub-contributors naar Brevo-contacten voor community-engagement
  • Star- en fork-tracking - Monitor populariteitsstatistieken van repositories
  • Webhook event forwarding - Stuur GitHub-events door naar Brevo-automatiseringen
  • Repositorycatalogus - Synchroniseer repository-metadata als Brevo-catalogusitems

Vereisten

Voordat je begint, zorg dat je beschikt over:

  1. Een GitHub-account met toegang tot de doel-repositories
  2. Een GitHub App of Personal Access Token (fine-grained aanbevolen)
  3. Admin-toegang tot repositories voor webhook-configuratie
  4. Een Brevo-account met API-toegang
  5. Een Tajo-account met een actief abonnement

Authenticatie

GitHub ondersteunt meerdere authenticatiemethoden. Tajo beveelt GitHub Apps aan voor toegang op organisatieniveau.

Optie 1: GitHub App (aanbevolen)

  1. Navigeer naar Settings > Developer settings > GitHub Apps
  2. Klik op New GitHub App
  3. Configureer de app met deze permissies:
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

Optie 2: Fine-Grained Personal Access Token

  1. Ga naar Settings > Developer settings > Personal access tokens > Fine-grained tokens
  2. Klik op Generate new token
  3. Selecteer de doel-repositories
  4. Geef deze permissies:
Repository access: Selected repositories
Permissions:
Issues: Read-only
Pull requests: Read-only
Contents: Read-only
Metadata: Read-only

Tokenbeveiliging

Fine-grained tokens hebben een verloopdatum. Zet tokenrotatie op voordat ze verlopen. GitHub App-installation tokens vernieuwen automatisch en hebben de voorkeur voor productiegebruik.

Verbinden met Tajo

Terminal window
# 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

Configuratie

Basisinstelling

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

Veldmapping

Map GitHub-gebruikersdata naar Brevo-contactattributen:

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

Tajo integreert met de volgende GitHub REST API-endpoints:

EndpointMethodDoel
/repos/{owner}/{repo}/issuesGETLijst repository-issues
/repos/{owner}/{repo}/pullsGETLijst pull requests
/repos/{owner}/{repo}/releasesGETLijst releases
/repos/{owner}/{repo}/contributorsGETLijst contributors
/repos/{owner}/{repo}/stargazersGETLijst stargazers
/repos/{owner}/{repo}/forksGETLijst forks
/repos/{owner}/{repo}/eventsGETLijst repository-events
/users/{username}GETHaal gebruikersprofiel op
/orgs/{org}/membersGETLijst organisatieleden
/repos/{owner}/{repo}/hooksPOSTMaak webhook aan

Codevoorbeelden

Connector initialiseren

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 synchroniseren naar Brevo

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-events afhandelen

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

Release-campagne triggeren

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

Rate limits

GitHub hanteert rate limits afhankelijk van de authenticatiemethode:

AuthenticatiePrimaire rate limitSearch API
Unauthenticated60 requests/uur10 requests/minuut
Personal Access Token5.000 requests/uur30 requests/minuut
GitHub App (installation)5.000 requests/uur30 requests/minuut
GitHub App (user-to-server)5.000 requests/uur30 requests/minuut

Conditional Requests

Tajo gebruikt conditional requests (If-None-Match- / If-Modified-Since-headers) om het API-verbruik te verlagen. Responses met 304 Not Modified tellen niet mee voor rate limits.

Aanvullende limieten:

  • Secondary rate limits: Niet meer dan 100 gelijktijdige requests. Niet meer dan 900 punten per minuut voor REST API-endpoints.
  • GraphQL: 5.000 punten per uur (querycost varieert per complexiteit).

Probleemoplossing

Veelvoorkomende problemen

ProbleemOorzaakOplossing
401 UnauthorizedVerlopen token of verkeerde credentialsRegenereer token of herinstalleer GitHub App
403 ForbiddenOnvoldoende rechtenControleer tokenscopes of app-permissies
404 Not FoundPrivate repo zonder toegangGeef repository-toegang aan token of app
Rate limit exceededTe veel API-callsZet conditional requests aan en verlaag syncfrequentie
Webhooks niet ontvangenVerkeerde URL of firewallControleer of de webhook-URL publiek bereikbaar is

Debugmodus

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

Verbinding testen

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

Best practices

  1. Gebruik GitHub Apps in plaats van PATs - GitHub Apps bieden granulaire permissies en tokens die automatisch verversen
  2. Zet webhook secrets aan - Verifieer altijd webhook-signatures met HMAC-SHA256
  3. Gebruik conditional requests - Benut ETags om geen rate limit-quota te verspillen
  4. Pagineer grote responses - GitHub retourneert max. 100 items per pagina; itereer met Link-headers
  5. Synchroniseer tijdens laagactieve uren - Plan full syncs buiten piek-developmenturen
  6. Monitor rate limit-headers - Controleer X-RateLimit-Remaining om proactief te throttlen

Beveiliging

  • GitHub App-authenticatie - RSA-key-gebaseerde JWT met kortlevende installation tokens
  • Webhook-signatures - HMAC-SHA256-signature-verificatie op alle webhook-payloads
  • Fine-Grained Tokens - Gescoped tot specifieke repositories en permissies
  • Alleen HTTPS - Alle API-communicatie is versleuteld via TLS 1.2+
  • Encrypted storage - Private keys en tokens versleuteld opgeslagen bij Tajo
  • Tokenverloop - Fine-grained tokens verlopen automatisch; zet rotatie-alerts op

Gerelateerde bronnen

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

AI-assistent

Hallo! Stel me vragen over de documentatie.

Deze pagina als Markdown: github.md

Markdown laden…
Openen in Claude Openen in ChatGPT