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
PlatformaJira Cloud
KategóriaVlastná
Zložitosť nastaveniaStredná
Oficiálna integráciaNie
Synchronizované dátaIssues, Projekty, Používatelia, Udalosti
Typ APIREST API v3
AutentifikáciaOAuth 2.0 (3LO) / API Token (Basic Auth)
Base URLhttps://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áš:

  1. Inštanciu Jira Cloud (Jira Software, Jira Service Management alebo Jira Work Management)
  2. Admin prístup na vytvorenie OAuth aplikácií alebo generovanie API tokenov
  3. E-mail Atlassian účtu spojený s tvojím API tokenom
  4. Brevo účet s API prístupom
  5. 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é

  1. Choď na developer.atlassian.com
  2. Klikni na Create > OAuth 2.0 integration
  3. Nakonfiguruj callback URL: https://app.tajo.io/callbacks/jira
  4. Pridaj tieto scopes:
read:jira-work
read:jira-user
write:jira-work
read: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)

  1. Choď na id.atlassian.com/manage/api-tokens
  2. Klikni na Create API token
  3. Pomenuj ho “Tajo Integration”
Terminal window
# Basic Auth: email as username, API token as password
curl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \
-u "[email protected]:$JIRA_API_TOKEN" \
-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

Terminal window
# Using OAuth 2.0
tajo connectors install jira \
--client-id $JIRA_CLIENT_ID \
--client-secret $JIRA_CLIENT_SECRET \
--cloud-id $JIRA_CLOUD_ID
# Using API Token
tajo connectors install jira \
--site-url your-domain.atlassian.net \
--api-token $JIRA_API_TOKEN

Konfigurá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 Request

Mapovanie 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_RESOLUTION

API endpointy

Tajo sa integruje s nasledujúcimi endpointmi Jira Cloud REST API v3:

EndpointMetódaÚčel
/rest/api/3/searchPOSTVyhľadávanie issues pomocou JQL
/rest/api/3/issue/{issueIdOrKey}GETDetaily issue
/rest/api/3/issuePOSTVytvorenie issue
/rest/api/3/projectGETZoznam všetkých projektov
/rest/api/3/project/{projectIdOrKey}GETDetaily projektu
/rest/api/3/user/searchGETVyhľadávanie používateľov
/rest/api/3/myselfGETAktuálny používateľ
/rest/api/3/issue/{issueIdOrKey}/commentGETKomentáre k issue
/rest/api/3/webhookPOSTRegistrácia webhookov
/rest/api/3/statusGETVšetky statusy
/rest/api/3/priorityGETVš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 contacts
await 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 customer
const issues = await tajo.connectors.query('jira', {
jql: 'reporter = "[email protected]" ORDER BY created DESC',
maxResults: 20,
fields: ['summary', 'status', 'priority', 'created']
});

Obmedzenia rýchlosti

Jira Cloud uplatňuje obmedzenia rýchlosti na zabezpečenie stability platformy:

KontextLimit
REST API~100 požiadaviek za 10 sekúnd na používateľa
Súbežné požiadavky10 dlhodobých súbežných požiadaviek
Hromadné operácieLíš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émPríčinaRiešenie
401 UnauthorizedNeplatný token alebo vypršaný OAuthObnov OAuth token alebo znovu vygeneruj API token
403 ForbiddenNedostatočné oprávneniaSkontroluj, či má používateľ prístup k požadovanému projektu
JQL chybyNeplatná syntax dopytuNajprv validuj JQL vo vyhľadávaní issues v Jira
Webhook nie je prijatýFirewall blokujeUisti sa, že URL webhookov je verejne dostupná
Chýbajúce poliaPole nie je v odpovediPridaj pole do parametra fields alebo použi expand

Debug režim

connectors:
jira:
debug: true
log_level: verbose
log_api_calls: true

Test pripojenia

Terminal window
tajo connectors test jira
# ✓ API authentication successful
# ✓ Project access verified
# ✓ Issue search operational
# ✓ User lookup available
# ✓ Webhook registration active

Odporúčané postupy

  1. Použi OAuth 2.0 pre produkciu - Vyhýba sa závislosti na jednotlivých používateľských účtoch
  2. Filtruj pomocou JQL - Synchronizuj iba relevantné issues na zníženie API volaní
  3. Použi webhooky pre real-time - Vyhýbaj sa pollingu; zaregistruj webhooky pre zmeny issues
  4. Rešpektuj formát ADF - Jira v3 používa Atlassian Document Format pre rich text polia
  5. Namapuj projekt na zoznam - Vytvor samostatné zoznamy Brevo pre každý projekt Jira
  6. 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

Súvisiace zdroje

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI asistent

Ahoj! Opýtajte sa ma na dokumentáciu.