Jira-kobling
Koble Jira Cloud-instansen din til Brevo for kundevendt issue-sporing, synlighet av supportsaker og varslinger om prosjektmilepæler gjennom Tajo.
Oversikt
| Egenskap | Verdi |
|---|---|
| Plattform | Jira Cloud |
| Kategori | Custom |
| Oppsettskompleksitet | Moderat |
| Offisiell integrasjon | Nei |
| Synkroniserte data | Issues, prosjekter, brukere, hendelser |
| API-type | REST API v3 |
| Autentisering | OAuth 2.0 (3LO) / API-token (Basic Auth) |
| Base URL | https://your-domain.atlassian.net/rest/api/3/ |
Funksjoner
- Synkronisering av issue-hendelser - Videresend hendelser for opprettelse, oppdatering og løsning av issues til Brevo-kontakttidslinjer
- Sporing av kundesaker - Koble Jira-issues til Brevo-kontakter for supportoversikt
- Varsler om prosjektmilepæler - Utløs Brevo-kampanjer ved versjonsreleaser og sprintfullføringer
- Data om teamkapasitet - Synkroniser arbeidsmengdemålinger for operasjonelle dashbord
- Statusendringshendelser - Spor arbeidsflytoverganger for issues som Brevo-hendelser
- Kommentar-synkronisering - Videresend kundevendte kommentarer til Brevo-aktivitetslogger
Forutsetninger
Før du begynner, sørg for at du har:
- En Jira Cloud-instans (Jira Software, Jira Service Management eller Jira Work Management)
- Administratortilgang for å opprette OAuth-apper eller generere API-tokens
- Atlassian-kontoens e-postadresse knyttet til API-tokenet ditt
- En Brevo-konto med API-tilgang
- En Tajo-konto med aktivt abonnement
Autentisering
Jira Cloud støtter flere autentiseringsmetoder.
Alternativ 1: OAuth 2.0 (3LO) - Anbefalt
- Gå til developer.atlassian.com
- Klikk Create > OAuth 2.0 integration
- Konfigurer callback-URL:
https://app.tajo.io/callbacks/jira - Legg til disse scopene:
read:jira-workread:jira-userwrite:jira-workread:meAPI-URL-strukturen for OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Alternativ 2: API-token (Basic Auth)
- Gå til id.atlassian.com/manage/api-tokens
- Klikk Create API token
- Gi det navnet “Tajo Integration”
# Basic Auth: e-post som brukernavn, API-token som passordcurl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \ -H "Accept: application/json"Begrensninger for API-token
API-tokens er knyttet til individuelle brukerkontoer. Hvis brukeren deaktiveres, slutter integrasjonen å virke. Bruk OAuth 2.0 for produksjonsutrullinger.
Koble til Tajo
# Med OAuth 2.0tajo connectors install jira \ --client-id $JIRA_CLIENT_ID \ --client-secret $JIRA_CLIENT_SECRET \ --cloud-id $JIRA_CLOUD_ID
# Med API-tokentajo connectors install jira \ --site-url your-domain.atlassian.net \ --api-token $JIRA_API_TOKENKonfigurasjon
Grunnleggende oppsett
connectors: jira: enabled: true site_url: "your-domain.atlassian.net" auth_type: "oauth2" # eller "basic"
sync: issues: true projects: true users: true comments: true worklogs: false
projects: - key: "SUPPORT" sync_to_list: 22 - key: "PRODUCT" sync_to_list: 23
issue_types: - Bug - Story - Task - Support RequestFeltmapping
Mapp Jira-issue- og brukerfelt til Brevo-attributter:
field_mapping: # Brukerfelt accountId: JIRA_ACCOUNT_ID emailAddress: email displayName: FIRSTNAME
# Issue-felt mappet til kontakthendelser issue_key: LAST_TICKET_KEY issue_status: LAST_TICKET_STATUS issue_priority: LAST_TICKET_PRIORITY issue_created: LAST_TICKET_DATE resolution: LAST_TICKET_RESOLUTIONAPI-endepunkter
Tajo integrerer med følgende Jira Cloud REST API v3-endepunkter:
| Endepunkt | Metode | Formål |
|---|---|---|
/rest/api/3/search | POST | Søk etter issues med JQL |
/rest/api/3/issue/{issueIdOrKey} | GET | Hent issue-detaljer |
/rest/api/3/issue | POST | Opprett en issue |
/rest/api/3/project | GET | List alle prosjekter |
/rest/api/3/project/{projectIdOrKey} | GET | Hent prosjektdetaljer |
/rest/api/3/user/search | GET | Søk etter brukere |
/rest/api/3/myself | GET | Hent gjeldende bruker |
/rest/api/3/issue/{issueIdOrKey}/comment | GET | Hent issue-kommentarer |
/rest/api/3/webhook | POST | Registrer webhooks |
/rest/api/3/status | GET | Hent alle statuser |
/rest/api/3/priority | GET | Hent alle prioriteter |
Kodeeksempler
Initialiser kobling
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('jira', { clientId: process.env.JIRA_CLIENT_ID, clientSecret: process.env.JIRA_CLIENT_SECRET, cloudId: process.env.JIRA_CLOUD_ID});Synkroniser supportsaker
// Synkroniser Jira-supportsaker til Brevo-kontakterawait tajo.connectors.sync('jira', { type: 'incremental', resources: ['issues'], jql: 'project = SUPPORT AND updated >= -24h', batchSize: 50});
const status = await tajo.connectors.status('jira');console.log(status);// {// connected: true,// lastSync: '2024-03-15T12:00:00Z',// issuesTracked: 4560,// projectsMonitored: 3,// usersLinked: 890// }Håndter Jira-webhooks
app.post('/webhooks/jira', async (req, res) => { const event = req.body;
await tajo.connectors.handleWebhook('jira', { event: event.webhookEvent, payload: { issueKey: event.issue?.key, issueType: event.issue?.fields?.issuetype?.name, status: event.issue?.fields?.status?.name, reporter: event.issue?.fields?.reporter?.emailAddress, assignee: event.issue?.fields?.assignee?.emailAddress } });
res.status(200).send('OK');});Søk etter issues per kunde
// Finn alle issues rapportert av en bestemt kundeconst issues = await tajo.connectors.query('jira', { maxResults: 20, fields: ['summary', 'status', 'priority', 'created']});Ratebegrensninger
Jira Cloud håndhever ratebegrensninger for å sikre plattformstabilitet:
| Kontekst | Ratebegrensning |
|---|---|
| REST API | ~100 forespørsler per 10 sekunder per bruker |
| Samtidige forespørsler | 10 samtidige langvarige forespørsler |
| Bulkoperasjoner | Varierer etter endepunkt |
Paginering
Jira bruker offset-basert paginering med parameterne startAt og maxResults. Standard sidestørrelse er 50, maks er 100. Tajo håndterer paginering automatisk.
Jira returnerer en 429 Too Many Requests-respons når ratebegrensninger overskrides, med en Retry-After-header som angir når du skal prøve igjen.
Feilsøking
Vanlige problemer
| Problem | Årsak | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig token eller utløpt OAuth | Oppdater OAuth-token eller regenerer API-token |
| 403 Forbidden | Utilstrekkelige rettigheter | Kontroller at brukeren har tilgang til det forespurte prosjektet |
| JQL-feil | Ugyldig spørringssyntaks | Valider JQL i Jiras issue-søk først |
| Webhook ikke mottatt | Brannmur blokkerer | Sørg for at webhook-URL er offentlig tilgjengelig |
| Manglende felt | Felt ikke i respons | Legg feltet til i fields-parameteren eller bruk expand |
Feilsøkingsmodus
connectors: jira: debug: true log_level: verbose log_api_calls: trueTest tilkobling
tajo connectors test jira# ✓ API-autentisering vellykket# ✓ Prosjekttilgang bekreftet# ✓ Issue-søk operativt# ✓ Brukeroppslag tilgjengelig# ✓ Webhook-registrering aktivBeste praksis
- Bruk OAuth 2.0 i produksjon - Unngår avhengighet av individuelle brukerkontoer
- Filtrer med JQL - Synkroniser kun relevante issues for å redusere API-kall
- Bruk webhooks for sanntid - Unngå polling; registrer webhooks for issue-endringer
- Respekter ADF-format - Jira v3 bruker Atlassian Document Format for rike tekstfelt
- Mapp prosjekt til liste - Opprett separate Brevo-lister per Jira-prosjekt
- Håndter paginering - Iterer alltid gjennom alle sider for komplette data
Sikkerhet
- OAuth 2.0 (3LO) - Sikker token-basert autentisering med oppfriskningstokens
- API-token + Basic Auth - Base64-kodede påloggingsdetaljer over HTTPS
- Kun HTTPS - All API-kommunikasjon kryptert via TLS 1.2+
- Avgrenset tilgang - OAuth-scopes begrenser API-tilgang til nødvendige ressurser
- Atlassian Cloud-sikkerhet - SOC 2 Type II-sertifisert infrastruktur
- Kryptert lagring - Påloggingsdetaljer kryptert i hvilemodus i Tajo