Jira Connector
Poveži svojo instanco Jira Cloud z Brevo za sledenje težavam, ki so vidne strankam, pregled zahtevkov za podporo in obvestila o mejnikih projektov prek Tajo.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | Jira Cloud |
| Kategorija | Po meri |
| Zahtevnost nastavitve | Srednja |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Težave, projekti, uporabniki, dogodki |
| Tip API | REST API v3 |
| Avtentikacija | OAuth 2.0 (3LO) / API žeton (Basic Auth) |
| Osnovni URL | https://your-domain.atlassian.net/rest/api/3/ |
Funkcionalnosti
- Sinhronizacija событий težav – posreduj события ustvarjanja, posodabljanja in reševanja težav na časovnice stikov Brevo
- Sledenje zahtevkom strank – poveži težave Jira s stiki Brevo za pregled podpore
- Opozorila o mejnikih projektov – sproži kampanje Brevo ob izdajah različic in zaključkih sprintov
- Podatki o kapaciteti ekipe – sinhronizacija meritev delovne obremenitve za operativne nadzorne plošče
- Dogodki spremembe statusa – sledi prehodom delovnega toka težav kot событiji Brevo
- Sinhronizacija komentarjev – posreduj komentarje, vidne strankam, v dnevnike aktivnosti Brevo
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Instanco Jira Cloud (Jira Software, Jira Service Management ali Jira Work Management)
- Administratorski dostop za ustvarjanje OAuth aplikacij ali generiranje API žetonov
- E-mail računa Atlassian, povezan s tvojim API žetonom
- Brevo račun z dostopom do API
- Tajo račun z aktivno naročnino
Avtentikacija
Jira Cloud podpira več metod avtentikacije.
Možnost 1: OAuth 2.0 (3LO) – priporočeno
- Pojdi na developer.atlassian.com
- Klikni Create > OAuth 2.0 integration
- Nastavi URL povratnega klica:
https://app.tajo.io/callbacks/jira - Dodaj te obsege:
read:jira-workread:jira-userwrite:jira-workread:meStruktura URL API za OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Možnost 2: API žeton (Basic Auth)
- Pojdi na id.atlassian.com/manage/api-tokens
- Klikni Create API token
- Poimenuj ga “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"Omejitve API žetonov
API žetoni so vezani na posamezne uporabniške račune. Če je uporabnik deaktiviran, se integracija prekine. Za produkcijsko namestitev uporabi OAuth 2.0.
Povezava s 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_TOKENKonfiguracija
Osnovna nastavitev
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 RequestPreslikava polj
Preslikaj polja težav in uporabnikov Jira v atribute 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_RESOLUTIONKončne točke API
Tajo se integrira z naslednjimi končnimi točkami Jira Cloud REST API v3:
| Končna točka | Metoda | Namen |
|---|---|---|
/rest/api/3/search | POST | Iskanje težav z JQL |
/rest/api/3/issue/{issueIdOrKey} | GET | Pridobi podrobnosti težave |
/rest/api/3/issue | POST | Ustvari težavo |
/rest/api/3/project | GET | Seznam vseh projektov |
/rest/api/3/project/{projectIdOrKey} | GET | Pridobi podrobnosti projekta |
/rest/api/3/user/search | GET | Iskanje uporabnikov |
/rest/api/3/myself | GET | Pridobi trenutnega uporabnika |
/rest/api/3/issue/{issueIdOrKey}/comment | GET | Pridobi komentarje težave |
/rest/api/3/webhook | POST | Registriraj webhooks |
/rest/api/3/status | GET | Pridobi vse statuse |
/rest/api/3/priority | GET | Pridobi vse prioritete |
Primeri kode
Inicializacija konektorja
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});Sinhronizacija zahtevkov za podporo
// 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// }Obravnava webhookov 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');});Iskanje težav po stranki
// Find all issues reported by a specific customerconst issues = await tajo.connectors.query('jira', { maxResults: 20, fields: ['summary', 'status', 'priority', 'created']});Omejitve hitrosti
Jira Cloud uveljavi omejitve hitrosti za zagotovitev stabilnosti platforme:
| Kontekst | Omejitev hitrosti |
|---|---|
| REST API | ~100 zahtevkov na 10 sekund na uporabnika |
| Sočasni zahtevki | 10 sočasnih dolgotrajnih zahtevkov |
| Množične operacije | Razlikuje se po končni točki |
Paginacija
Jira uporablja paginacijo na osnovi odmika s parametroma startAt in maxResults. Privzeta velikost strani je 50, največ 100. Tajo paginacijo obravnava samodejno.
Jira vrne odgovor 429 Too Many Requests, ko so omejitve hitrosti prekoračene, z glavo Retry-After, ki kaže, kdaj se znova poskusiti.
Odpravljanje težav
Pogoste težave
| Težava | Vzrok | Rešitev |
|---|---|---|
| 401 Unauthorized | Neveljaven žeton ali potekel OAuth | Osveži OAuth žeton ali obnovi API žeton |
| 403 Forbidden | Nezadostna dovoljenja | Preveri, ali ima uporabnik dostop do zahtevanega projekta |
| Napake JQL | Napačna sintaksa poizvedbe | Najprej potrdi JQL v iskanju težav Jira |
| Webhook ni prejet | Požarni zid blokira | Zagotovi, da je URL webhookov javno dostopen |
| Manjkajoča polja | Polje ni v odgovoru | Dodaj polje parametru fields ali uporabi expand |
Način odpravljanja napak
connectors: jira: debug: true log_level: verbose log_api_calls: truePreizkus povezave
tajo connectors test jira# ✓ API authentication successful# ✓ Project access verified# ✓ Issue search operational# ✓ User lookup available# ✓ Webhook registration activeNajboljše prakse
- Za produkcijo uporabi OAuth 2.0 – prepreči odvisnost od posameznih uporabniških računov
- Filtriraj z JQL – sinhronizacija samo ustreznih težav za zmanjšanje klicev API
- Za posodobitve v realnem času uporabi webhooks – izogibaj se anketiranju; registriraj webhooks za spremembe težav
- Spoštuj format ADF – Jira v3 za polja z obogatenim besedilom uporablja Atlassian Document Format
- Preslikaj projekt na seznam – ustvari ločene sezname Brevo na projekt Jira
- Obravnavaj paginacijo – vedno iteriraj skozi vse strani za popolne podatke
Varnost
- OAuth 2.0 (3LO) – varna avtentikacija na osnovi žetonov z žetoni za osvežitev
- API žeton + Basic Auth – poverilnice kodirane z Base64 prek HTTPS
- Samo HTTPS – vsa komunikacija API šifrirana prek TLS 1.2+
- Obsegani dostop – obsegi OAuth omejijo dostop do API na zahtevane vire
- Varnost Atlassian Cloud – infrastruktura certificirana po SOC 2 Type II
- Šifrirano shranjevanje – poverilnice šifrirane v mirovanju v Tajo