Konektor Jira
Propojte svou instanci Jira Cloud s Brevo pro sledování issues orientovaných na zákazníky, viditelnost supportních tiketů a notifikace o projektových milnících přes Tajo.
Přehled
| Vlastnost | Hodnota |
|---|---|
| Platforma | Jira Cloud |
| Kategorie | Vlastní |
| Složitost nastavení | Střední |
| Oficiální integrace | Ne |
| Synchronizovaná data | Issues, Projekty, Uživatelé, Události |
| Typ API | REST API v3 |
| Ověření | OAuth 2.0 (3LO) / API Token (Basic Auth) |
| Základní URL | https://your-domain.atlassian.net/rest/api/3/ |
Funkce
- Synchronizace událostí issues – Přeposílejte události vytvoření, aktualizace a vyřešení issues do časových os kontaktů Brevo
- Sledování zákaznických tiketů – Propojte issues Jira s kontakty Brevo pro viditelnost podpory
- Upozornění na projektové milníky – Spouštějte kampaně Brevo při vydáních verzí a dokončení sprintů
- Data kapacity týmu – Synchronizujte metriky pracovní zátěže pro operační přehledy
- Události změny stavu – Sledujte přechody pracovního postupu issues jako události Brevo
- Synchronizace komentářů – Přeposílejte komentáře pro zákazníky do protokolů aktivit Brevo
Předpoklady
Než začnete, ujistěte se, že máte:
- Instanci Jira Cloud (Jira Software, Jira Service Management nebo Jira Work Management)
- Administrátorský přístup k vytváření OAuth aplikací nebo generování API tokenů
- E-mail účtu Atlassian přidružený k vašemu API tokenu
- Účet Brevo s přístupem k API
- Účet Tajo s aktivním předplatným
Ověření
Jira Cloud podporuje více metod ověřování.
Možnost 1: OAuth 2.0 (3LO) – Doporučeno
- Přejděte na developer.atlassian.com
- Klikněte na Create > OAuth 2.0 integration
- Nakonfigurujte URL zpětného volání:
https://app.tajo.io/callbacks/jira - Přidejte tyto rozsahy:
read:jira-workread:jira-userwrite:jira-workread:meStruktura URL API pro OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Možnost 2: API Token (Basic Auth)
- Přejděte na id.atlassian.com/manage/api-tokens
- Klikněte na Create API token
- Pojmenujte ho “Tajo Integration”
# Basic Auth: e-mail jako uživatelské jméno, API token jako heslocurl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \ -H "Accept: application/json"Omezení API tokenu
API tokeny jsou vázány na individuální uživatelské účty. Pokud je uživatel deaktivován, integrace se přeruší. Pro produkční nasazení používejte OAuth 2.0.
Připojení k Tajo
# Použití OAuth 2.0tajo connectors install jira \ --client-id $JIRA_CLIENT_ID \ --client-secret $JIRA_CLIENT_SECRET \ --cloud-id $JIRA_CLOUD_ID
# Použití API tokenutajo connectors install jira \ --site-url your-domain.atlassian.net \ --api-token $JIRA_API_TOKENKonfigurace
Základní nastavení
connectors: jira: enabled: true site_url: "your-domain.atlassian.net" auth_type: "oauth2" # nebo "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 RequestMapování polí
Mapujte pole issues a uživatelů Jira na atributy Brevo:
field_mapping: # Pole uživatele accountId: JIRA_ACCOUNT_ID emailAddress: email displayName: FIRSTNAME
# Pole issues mapovaná na události kontaktů issue_key: LAST_TICKET_KEY issue_status: LAST_TICKET_STATUS issue_priority: LAST_TICKET_PRIORITY issue_created: LAST_TICKET_DATE resolution: LAST_TICKET_RESOLUTIONKoncové body API
Tajo se integruje s následujícími koncovými body Jira Cloud REST API v3:
| Koncový bod | Metoda | Účel |
|---|---|---|
/rest/api/3/search | POST | Vyhledávání issues pomocí JQL |
/rest/api/3/issue/{issueIdOrKey} | GET | Získání podrobností issue |
/rest/api/3/issue | POST | Vytvoření issue |
/rest/api/3/project | GET | Výpis všech projektů |
/rest/api/3/project/{projectIdOrKey} | GET | Získání podrobností projektu |
/rest/api/3/user/search | GET | Vyhledávání uživatelů |
/rest/api/3/myself | GET | Získání aktuálního uživatele |
/rest/api/3/issue/{issueIdOrKey}/comment | GET | Získání komentářů k issue |
/rest/api/3/webhook | POST | Registrace webhooků |
/rest/api/3/status | GET | Získání všech stavů |
/rest/api/3/priority | GET | Získání všech priorit |
Příklady kódu
Inicializace konektoru
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});Synchronizace supportních issues
// Synchronizace supportních issues Jira do kontaktů Brevoawait 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// }Zpracování webhooků Jira
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');});Vyhledávání issues podle zákazníka
// Nalezení všech issues nahlášených konkrétním zákazníkemconst issues = await tajo.connectors.query('jira', { maxResults: 20, fields: ['summary', 'status', 'priority', 'created']});Omezení rychlosti
Jira Cloud aplikuje omezení rychlosti pro zajištění stability platformy:
| Kontext | Limit rychlosti |
|---|---|
| REST API | ~100 požadavků za 10 sekund na uživatele |
| Souběžné požadavky | 10 souběžných dlouho běžících požadavků |
| Hromadné operace | Liší se podle koncového bodu |
Stránkování
Jira používá stránkování na základě offsetu s parametry startAt a maxResults. Výchozí velikost stránky je 50, maximum je 100. Tajo zpracovává stránkování automaticky.
Jira vrací odpověď 429 Too Many Requests, když jsou překročeny limity rychlosti, s hlavičkou Retry-After určující, kdy znovu zkusit.
Řešení problémů
Časté problémy
| Problém | Příčina | Řešení |
|---|---|---|
| 401 Unauthorized | Neplatný token nebo vypršelý OAuth | Obnovte OAuth token nebo vygenerujte API token znovu |
| 403 Forbidden | Nedostatečná oprávnění | Zkontrolujte, zda má uživatel přístup k požadovanému projektu |
| Chyby JQL | Neplatná syntaxe dotazu | Nejprve ověřte JQL ve vyhledávání issues v Jira |
| Webhook není přijat | Brána firewall blokuje | Zajistěte, aby URL webhooku byla veřejně přístupná |
| Chybějící pole | Pole není v odpovědi | Přidejte pole do parametru fields nebo použijte expand |
Režim ladění
connectors: jira: debug: true log_level: verbose log_api_calls: trueTest připojení
tajo connectors test jira# ✓ Ověření API úspěšné# ✓ Přístup k projektu ověřen# ✓ Vyhledávání issues funkční# ✓ Vyhledávání uživatelů dostupné# ✓ Registrace webhooků aktivníOsvědčené postupy
- Používejte OAuth 2.0 pro produkci – Vyhnete se závislosti na individuálních uživatelských účtech
- Filtrujte pomocí JQL – Synchronizujte pouze relevantní issues pro snížení volání API
- Používejte webhooky pro real-time – Vyhněte se pollingu; registrujte webhooky pro změny issues
- Respektujte formát ADF – Jira v3 používá Atlassian Document Format pro pole s formátovaným textem
- Mapujte projekt na seznam – Vytvořte samostatné seznamy Brevo na projekt Jira
- Zpracovávejte stránkování – Vždy iterujte přes všechny stránky pro úplná data
Zabezpečení
- OAuth 2.0 (3LO) – Bezpečné ověřování na základě tokenů s obnovovacími tokeny
- API Token + Basic Auth – Base64 kódované přihlašovací údaje přes HTTPS
- Pouze HTTPS – Veškerá komunikace API šifrována přes TLS 1.2+
- Rozsahový přístup – Rozsahy OAuth omezují přístup API na požadované zdroje
- Bezpečnost Atlassian Cloud – Infrastruktura certifikovaná podle SOC 2 Type II
- Šifrované úložiště – Přihlašovací údaje šifrované v klidu v Tajo