Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

GitHub-koppling

Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.

Illustration · exempeldata

Exempel på synkronisering

Granska en post

Källa

GitHub

Kopplingens status: Planerad

Mål

Ditt andra verktyg

Kopplingens status: Eget verktyg

KällfältMålfältExempelvärde
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Utkast
  2. Granska en post
  3. Godkänn den här versionen

Status gäller varje enskild koppling och garanterar inte att den här synkroniseringen är klar. Fälten är illustrativa. Kontrollera det faktiska schemat och behörigheterna innan synkronisering körs.

Anslut dina GitHub-lager till Brevo för uppföljning av utvecklarengagemang, arbetsflöden för releasemeddelanden och övervakning av communityaktivitet via Tajo.

Översikt

EgenskapVärde
PlattformGitHub
KategoriAnpassad
InstallationskomplexitetMåttlig
Officiell integrationNej
Data som synkasHändelser, användare, lager
API-typREST API, GraphQL API
AutentiseringGitHub App / Personal Access Token / OAuth 2.0
Bas-URLhttps://api.github.com
API-version2022-11-28 (header-baserad versionering)

Funktioner

  • Uppföljning av issues och PR:er - Synka issue- och pull request-händelser till tidslinjer för Brevo-kontakter
  • Releasemeddelanden - Utlös Brevo-kampanjer vid nya lagerreleaser
  • Bidragsgivarsynk - Mappa GitHub-bidragsgivare till Brevo-kontakter för community-engagemang
  • Stjärn- och fork-spårning - Övervaka lagrens popularitetsmått
  • Vidarebefordran av webhook-händelser - Vidarebefordra GitHub-händelser till Brevo-automationer
  • Lagerkatalog - Synka lagermetadata som Brevo-katalogposter

Förutsättningar

Innan du börjar, se till att du har:

  1. Ett GitHub-konto med åtkomst till målrepo
  2. En GitHub-app eller Personal Access Token (fine-grained rekommenderas)
  3. Administratörsåtkomst till lager för webhook-konfiguration
  4. Ett Brevo-konto med API-åtkomst
  5. Ett Tajo-konto med aktivt abonnemang

Autentisering

GitHub stöder flera autentiseringsmetoder. Tajo rekommenderar att använda GitHub Apps för åtkomst på organisationsnivå.

Alternativ 1: GitHub App (rekommenderas)

  1. Navigera till Settings > Developer settings > GitHub Apps
  2. Klicka på New GitHub App
  3. Konfigurera appen med dessa behörigheter:
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

Alternativ 2: Fine-Grained Personal Access Token

  1. Gå till Settings > Developer settings > Personal access tokens > Fine-grained tokens
  2. Klicka på Generate new token
  3. Välj mål-lager
  4. Bevilja dessa behörigheter:
Repository access: Selected repositories
Permissions:
Issues: Read-only
Pull requests: Read-only
Contents: Read-only
Metadata: Read-only

Tokensäkerhet

Fine-grained tokens har utgångsdatum. Sätt upp tokenrotation före utgång. GitHub App-installationstokens uppdateras automatiskt och föredras för produktionsbruk.

Ansluta till 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

Grundinställning

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

Fältmappning

Mappa GitHub-användardata till Brevo-kontaktattribut:

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 integrerar med följande endpoints i GitHubs REST API:

EndpointMetodSyfte
/repos/{owner}/{repo}/issuesGETLista lagrets issues
/repos/{owner}/{repo}/pullsGETLista pull requests
/repos/{owner}/{repo}/releasesGETLista releaser
/repos/{owner}/{repo}/contributorsGETLista bidragsgivare
/repos/{owner}/{repo}/stargazersGETLista stargazers
/repos/{owner}/{repo}/forksGETLista forks
/repos/{owner}/{repo}/eventsGETLista lagerhändelser
/users/{username}GETHämta användarprofil
/orgs/{org}/membersGETLista organisationsmedlemmar
/repos/{owner}/{repo}/hooksPOSTSkapa webhook

Kodexempel

Initiera kopplingen

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

Synka bidragsgivare till 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
// }

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

Utlös releasekampanj

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

Hastighetsbegränsningar

GitHub tillämpar hastighetsbegränsningar baserat på autentiseringsmetod:

AutentiseringPrimär hastighetsbegränsningSearch API
Oautentiserad60 förfrågningar/timme10 förfrågningar/minut
Personal Access Token5 000 förfrågningar/timme30 förfrågningar/minut
GitHub App (installation)5 000 förfrågningar/timme30 förfrågningar/minut
GitHub App (user-to-server)5 000 förfrågningar/timme30 förfrågningar/minut

Villkorliga förfrågningar

Tajo använder villkorliga förfrågningar (If-None-Match / If-Modified-Since-headers) för att minska API-konsumtionen. Svar med 304 Not Modified räknas inte mot hastighetsbegränsningen.

Ytterligare gränser:

  • Sekundära hastighetsbegränsningar: Inte mer än 100 samtidiga förfrågningar. Inte mer än 900 poäng per minut för REST API-endpoints.
  • GraphQL: 5 000 poäng per timme (frågekostnad varierar beroende på komplexitet).

Felsökning

Vanliga problem

ProblemOrsakLösning
401 UnauthorizedUtgången token eller fel uppgifterÅtergenerera token eller installera om GitHub-appen
403 ForbiddenOtillräckliga behörigheterKontrollera tokens scopes eller appens behörigheter
404 Not FoundPrivat repo utan åtkomstBevilja lageråtkomst till token eller app
Hastighetsbegränsning överskridenFör många API-anropAktivera villkorliga förfrågningar och minska synkfrekvensen
Webhooks tas inte emotFel URL eller brandväggVerifiera att webhook-URL:en är offentligt tillgänglig

Felsökningsläge

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

Testa anslutning

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)

Bästa praxis

  1. Använd GitHub Apps framför PAT:er - GitHub Apps ger granulära behörigheter och automatiskt uppdaterande tokens
  2. Aktivera webhook-hemligheter - Verifiera alltid webhook-signaturer med HMAC-SHA256
  3. Använd villkorliga förfrågningar - Utnyttja ETags för att undvika att slösa hastighetsbegränsningskvot
  4. Paginera stora svar - GitHub returnerar max 100 objekt per sida; iterera med Link-headers
  5. Synka under låg aktivitet - Schemalägg fullständiga synkar utanför högaktiva utvecklingstimmar
  6. Övervaka rate limit-headers - Kontrollera X-RateLimit-Remaining för att proaktivt strypa

Säkerhet

  • GitHub App-autentisering - RSA-nyckelbaserad JWT med kortlivade installationstokens
  • Webhook-signaturer - HMAC-SHA256-signaturverifiering på alla webhook-nyttolaster
  • Fine-Grained Tokens - Scopade till specifika lager och behörigheter
  • Endast HTTPS - All API-kommunikation krypterad via TLS 1.2+
  • Krypterad lagring - Privata nycklar och tokens krypterade i vila i Tajo
  • Token-utgång - Fine-grained tokens går automatiskt ut; sätt upp rotationsvarningar

Relaterade resurser

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

AI-assistent

Hej! Fråga mig om dokumentationen.

Den här sidan som Markdown: github.md

Läser in Markdown …
Öppna i Claude Öppna i ChatGPT