Bed om tidlig adgang til Tajo

Indtast dit fornavn og din arbejds-e-mailadresse. Vi sender dig et link til at bekræfte din anmodning om adgang til Tajo.

GitHub Connector

Connectorstatus: Planlagt Ikke bygget endnu. Tajo kører ikke denne connector i dag.

Illustration · eksempeldata

Eksempel på synkronisering

Gennemse én post

Kilde

GitHub

Connectorstatus: Planlagt

Destination

Dit andet værktøj

Connectorstatus: Eget værktøj

KildefeltDestinationsfeltEksempelværdi
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Udkast
  2. Gennemse én post
  3. Godkend denne version

Status gælder den enkelte connector og garanterer ikke, at denne synkronisering er klar. Felterne er illustrative. Tjek det faktiske skema og tilladelser før en synkronisering.

Forbind dine GitHub-repositories med Brevo til sporing af udvikler-engagement, workflows til udgivelsesnotifikationer og overvågning af fællesskabsaktivitet gennem Tajo.

Oversigt

EgenskabVærdi
PlatformGitHub
KategoriBrugerdefineret
OpsætningskompleksitetModerat
Officiel integrationNej
Synkroniserede dataHændelser, brugere, repositories
API-typeREST API, GraphQL API
AutentifikationGitHub App / Personal Access Token / OAuth 2.0
Base-URLhttps://api.github.com
API-version2022-11-28 (header-baseret versionering)

Funktioner

  • Sporing af issues og PR’er - Synkronisér issue- og pull request-hændelser til Brevo-kontakttidslinjer
  • Udgivelsesnotifikationer - Udløs Brevo-kampagner ved nye repository-udgivelser
  • Synkronisering af bidragydere - Kortlæg GitHub-bidragydere til Brevo-kontakter til fællesskabs-engagement
  • Sporing af stars og forks - Overvåg repository-popularitetsmetrikker
  • Videresendelse af webhook-hændelser - Videresend GitHub-hændelser til Brevo-automatiseringer
  • Repository-katalog - Synkronisér repository-metadata som Brevo-katalogelementer

Forudsætninger

Før du begynder, skal du sikre dig, at du har:

  1. En GitHub-konto med adgang til målrepositories
  2. En GitHub App eller et Personal Access Token (fine-grained anbefales)
  3. Admin-adgang til repositories til webhook-konfiguration
  4. En Brevo-konto med API-adgang
  5. En Tajo-konto med aktivt abonnement

Autentifikation

GitHub understøtter flere autentifikationsmetoder. Tajo anbefaler at bruge GitHub Apps til adgang på organisationsniveau.

Mulighed 1: GitHub App (anbefalet)

  1. Gå til Settings > Developer settings > GitHub Apps
  2. Klik på New GitHub App
  3. Konfigurér appen med disse tilladelser:
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

Mulighed 2: Fine-Grained Personal Access Token

  1. Gå til Settings > Developer settings > Personal access tokens > Fine-grained tokens
  2. Klik på Generate new token
  3. Vælg målrepositories
  4. Tildel disse tilladelser:
Repository access: Selected repositories
Permissions:
Issues: Read-only
Pull requests: Read-only
Contents: Read-only
Metadata: Read-only

Token-sikkerhed

Fine-grained tokens har udløbsdatoer. Opsæt token-rotation før udløb. GitHub App-installationstokens opdateres automatisk og foretrækkes til produktionsbrug.

Forbind til 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

Konfiguration

Grundlæggende opsætning

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

Feltmapping

Kortlæg GitHub-brugerdata til Brevo-kontaktattributter:

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 integrerer med følgende GitHub REST API-endpoints:

EndpointMetodeFormål
/repos/{owner}/{repo}/issuesGETVis repository-issues
/repos/{owner}/{repo}/pullsGETVis pull requests
/repos/{owner}/{repo}/releasesGETVis udgivelser
/repos/{owner}/{repo}/contributorsGETVis bidragydere
/repos/{owner}/{repo}/stargazersGETVis stargazers
/repos/{owner}/{repo}/forksGETVis forks
/repos/{owner}/{repo}/eventsGETVis repository-hændelser
/users/{username}GETHent brugerprofil
/orgs/{org}/membersGETVis organisationsmedlemmer
/repos/{owner}/{repo}/hooksPOSTOpret webhook

Kodeeksempler

Initialisér connector

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

Synkronisér bidragydere til 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
// }

Håndtér webhook-hændelser

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

Udløs udgivelseskampagne

// 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 håndhæver rate limits baseret på autentifikationsmetode:

AutentifikationPrimær rate limitSearch API
Uautentificeret60 anmodninger/time10 anmodninger/minut
Personal Access Token5.000 anmodninger/time30 anmodninger/minut
GitHub App (installation)5.000 anmodninger/time30 anmodninger/minut
GitHub App (user-to-server)5.000 anmodninger/time30 anmodninger/minut

Betingede anmodninger

Tajo bruger betingede anmodninger (If-None-Match / If-Modified-Since-headers) for at reducere API-forbruget. Svar med 304 Not Modified tæller ikke med i rate limits.

Yderligere grænser:

  • Sekundære rate limits: Ikke mere end 100 samtidige anmodninger. Ikke mere end 900 point pr. minut for REST API-endpoints.
  • GraphQL: 5.000 point pr. time (forespørgselsomkostninger varierer efter kompleksitet).

Fejlfinding

Almindelige problemer

ProblemÅrsagLøsning
401 UnauthorizedUdløbet token eller forkerte legitimationsoplysningerRegenerér token eller geninstallér GitHub App
403 ForbiddenUtilstrækkelige tilladelserTjek token-scopes eller app-tilladelser
404 Not FoundPrivat repo uden adgangGiv repository-adgang til token eller app
Rate limit overskredetFor mange API-kaldAktivér betingede anmodninger og reducér synkroniseringsfrekvens
Webhooks ikke modtagetForkert URL eller firewallVerificér, at webhook-URL er offentligt tilgængelig

Debug-tilstand

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

Testforbindelse

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)

Bedste praksis

  1. Brug GitHub Apps frem for PAT’er - GitHub Apps giver granulære tilladelser og automatisk opdaterende tokens
  2. Aktivér webhook-secrets - Verificér altid webhook-signaturer med HMAC-SHA256
  3. Brug betingede anmodninger - Udnyt ETags for at undgå at spilde rate limit-kvote
  4. Paginér store svar - GitHub returnerer maks. 100 elementer pr. side; itérér med Link-headers
  5. Synkronisér uden for spidsbelastning - Planlæg fulde synkroniseringer uden for peak-udviklingstider
  6. Overvåg rate limit-headers - Tjek X-RateLimit-Remaining for proaktivt at throttle

Sikkerhed

  • GitHub App-autentifikation - RSA-nøglebaseret JWT med kortvarige installationstokens
  • Webhook-signaturer - HMAC-SHA256-signaturverifikation på alle webhook-payloads
  • Fine-Grained tokens - Scoped til specifikke repositories og tilladelser
  • Kun HTTPS - Al API-kommunikation krypteres via TLS 1.2+
  • Krypteret opbevaring - Private nøgler og tokens krypteres i hvile i Tajo
  • Token-udløb - Fine-grained tokens udløber automatisk; opsæt rotationsalarmer

Relaterede ressourcer

Bed om tidlig adgang til Tajo

Indtast dit fornavn og din arbejds-e-mailadresse. Vi sender dig et link til at bekræfte din anmodning om adgang til Tajo.

AI-assistent

Hej! Spørg mig om dokumentationen.

Denne side som Markdown: github.md

Indlæser Markdown …
Åbn i Claude Åbn i ChatGPT