Jira konektor
Prepoj svoju inštanciu Jira Cloud s Brevo pre sledovanie issues zákazníkov, viditeľnosť support ticketov a notifikácie o míľnikoch projektov cez Tajo.
Prehľad
| Vlastnosť | Hodnota |
|---|---|
| Platforma | Jira Cloud |
| Kategória | Vlastná |
| Zložitosť nastavenia | Stredná |
| Oficiálna integrácia | Nie |
| Synchronizované dáta | Issues, Projekty, Používatelia, Udalosti |
| Typ API | REST API v3 |
| Autentifikácia | OAuth 2.0 (3LO) / API Token (Basic Auth) |
| Base URL | https://your-domain.atlassian.net/rest/api/3/ |
Funkcie
- Synchronizácia udalostí issues - Preposielaj udalosti vytvorenia, aktualizácie a vyriešenia issues do časových osí kontaktov v Brevo
- Sledovanie ticketov zákazníkov - Prepoj Jira issues s kontaktmi Brevo pre viditeľnosť podpory
- Upozornenia na míľniky projektov - Spúšťaj kampane Brevo pri vydaniach verzií a dokončeniach sprintov
- Dáta kapacity tímu - Synchronizuj metriky pracovného zaťaženia pre operačné dashboardy
- Udalosti zmeny stavu - Sleduj prechody workflowu issues ako udalosti Brevo
- Synchronizácia komentárov - Preposielaj komentáre pre zákazníkov do activity logov Brevo
Predpoklady
Predtým, než začneš, uisti sa, že máš:
- Inštanciu Jira Cloud (Jira Software, Jira Service Management alebo Jira Work Management)
- Admin prístup na vytvorenie OAuth aplikácií alebo generovanie API tokenov
- E-mail Atlassian účtu spojený s tvojím API tokenom
- Brevo účet s API prístupom
- Tajo účet s aktívnym predplatným
Autentifikácia
Jira Cloud podporuje viacero metód autentifikácie.
Možnosť 1: OAuth 2.0 (3LO) - odporúčané
- Choď na developer.atlassian.com
- Klikni na Create > OAuth 2.0 integration
- Nakonfiguruj callback URL:
https://app.tajo.io/callbacks/jira - Pridaj tieto scopes:
read:jira-workread:jira-userwrite:jira-workread:meŠtruktúra API URL pre OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Možnosť 2: API Token (Basic Auth)
- Choď na id.atlassian.com/manage/api-tokens
- Klikni na Create API token
- Pomenuj ho “Tajo Integration”
# Basic Auth: email as username, API token as passwordcurl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \ -H "Accept: application/json"Obmedzenia API tokenu
API tokeny sú viazané na jednotlivé používateľské účty. Ak je používateľ deaktivovaný, integrácia prestane fungovať. Pre produkčné nasadenie použi OAuth 2.0.
Pripojenie k Tajo
# Using OAuth 2.0tajo connectors install jira \ --client-id $JIRA_CLIENT_ID \ --client-secret $JIRA_CLIENT_SECRET \ --cloud-id $JIRA_CLOUD_ID
# Using API Tokentajo connectors install jira \ --site-url your-domain.atlassian.net \ --api-token $JIRA_API_TOKENKonfigurácia
Základné nastavenie
connectors: jira: enabled: true site_url: "your-domain.atlassian.net" auth_type: "oauth2" # or "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 RequestMapovanie polí
Namapuj polia issues a používateľov Jira na atribúty Brevo:
field_mapping: # User fields accountId: JIRA_ACCOUNT_ID emailAddress: email displayName: FIRSTNAME
# Issue fields mapped to contact events issue_key: LAST_TICKET_KEY issue_status: LAST_TICKET_STATUS issue_priority: LAST_TICKET_PRIORITY issue_created: LAST_TICKET_DATE resolution: LAST_TICKET_RESOLUTIONAPI endpointy
Tajo sa integruje s nasledujúcimi endpointmi Jira Cloud REST API v3:
| Endpoint | Metóda | Účel |
|---|---|---|
/rest/api/3/search | POST | Vyhľadávanie issues pomocou JQL |
/rest/api/3/issue/{issueIdOrKey} | GET | Detaily issue |
/rest/api/3/issue | POST | Vytvorenie issue |
/rest/api/3/project | GET | Zoznam všetkých projektov |
/rest/api/3/project/{projectIdOrKey} | GET | Detaily projektu |
/rest/api/3/user/search | GET | Vyhľadávanie používateľov |
/rest/api/3/myself | GET | Aktuálny používateľ |
/rest/api/3/issue/{issueIdOrKey}/comment | GET | Komentáre k issue |
/rest/api/3/webhook | POST | Registrácia webhookov |
/rest/api/3/status | GET | Všetky statusy |
/rest/api/3/priority | GET | Všetky priority |
Ukážky kódu
Inicializácia konektora
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});Synchronizácia support issues
// Sync Jira support issues to Brevo contactsawait 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// }Spracovanie Jira webhookov
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');});Vyhľadávanie issues podľa zákazníka
// Find all issues reported by a specific customerconst issues = await tajo.connectors.query('jira', { maxResults: 20, fields: ['summary', 'status', 'priority', 'created']});Obmedzenia rýchlosti
Jira Cloud uplatňuje obmedzenia rýchlosti na zabezpečenie stability platformy:
| Kontext | Limit |
|---|---|
| REST API | ~100 požiadaviek za 10 sekúnd na používateľa |
| Súbežné požiadavky | 10 dlhodobých súbežných požiadaviek |
| Hromadné operácie | Líši sa podľa endpointu |
Stránkovanie
Jira používa stránkovanie na základe offsetu s parametrami startAt a maxResults. Predvolená veľkosť stránky je 50, maximum je 100. Tajo spravuje stránkovanie automaticky.
Jira vracia odpoveď 429 Too Many Requests pri prekročení limitov, s hlavičkou Retry-After udávajúcou čas opätovného skúsenia.
Riešenie problémov
Bežné problémy
| Problém | Príčina | Riešenie |
|---|---|---|
| 401 Unauthorized | Neplatný token alebo vypršaný OAuth | Obnov OAuth token alebo znovu vygeneruj API token |
| 403 Forbidden | Nedostatočné oprávnenia | Skontroluj, či má používateľ prístup k požadovanému projektu |
| JQL chyby | Neplatná syntax dopytu | Najprv validuj JQL vo vyhľadávaní issues v Jira |
| Webhook nie je prijatý | Firewall blokuje | Uisti sa, že URL webhookov je verejne dostupná |
| Chýbajúce polia | Pole nie je v odpovedi | Pridaj pole do parametra fields alebo použi expand |
Debug režim
connectors: jira: debug: true log_level: verbose log_api_calls: trueTest pripojenia
tajo connectors test jira# ✓ API authentication successful# ✓ Project access verified# ✓ Issue search operational# ✓ User lookup available# ✓ Webhook registration activeOdporúčané postupy
- Použi OAuth 2.0 pre produkciu - Vyhýba sa závislosti na jednotlivých používateľských účtoch
- Filtruj pomocou JQL - Synchronizuj iba relevantné issues na zníženie API volaní
- Použi webhooky pre real-time - Vyhýbaj sa pollingu; zaregistruj webhooky pre zmeny issues
- Rešpektuj formát ADF - Jira v3 používa Atlassian Document Format pre rich text polia
- Namapuj projekt na zoznam - Vytvor samostatné zoznamy Brevo pre každý projekt Jira
- Spravuj stránkovanie - Vždy iteruj cez všetky stránky pre kompletné dáta
Bezpečnosť
- OAuth 2.0 (3LO) - Bezpečná autentifikácia na základe tokenov s refresh tokenmi
- API Token + Basic Auth - Base64-kódované prihlasovacie údaje cez HTTPS
- Iba HTTPS - Všetka API komunikácia šifrovaná cez TLS 1.2+
- Scoped prístup - OAuth scopes obmedzujú API prístup na požadované zdroje
- Bezpečnosť Atlassian Cloud - Infraštruktúra certifikovaná podľa SOC 2 Type II
- Šifrované úložisko - Prihlasovacie údaje šifrované v pokoji v Tajo