Jira Konektor
Povežite svoju Jira Cloud instancu s Brevom za praćenje problema prema klijentima, vidljivost tiketa podrške i obavijesti o projektnim prekretnicama putem Taja.
Pregled
| Svojstvo | Vrijednost |
|---|---|
| Platforma | Jira Cloud |
| Kategorija | Prilagođeno |
| Složenost postavljanja | Srednje |
| Službena integracija | Ne |
| Sinkronizirani podaci | Problemi, Projekti, Korisnici, Događaji |
| Vrsta API-ja | REST API v3 |
| Autentifikacija | OAuth 2.0 (3LO) / API Token (Basic Auth) |
| Osnovni URL | https://your-domain.atlassian.net/rest/api/3/ |
Značajke
- Sinkronizacija događaja problema - Prosljeđujte događaje stvaranja, ažuriranja i rješavanja problema na Brevo vremenske linije kontakata
- Praćenje tiketa klijenata - Povežite Jira probleme s Brevo kontaktima radi vidljivosti podrške
- Upozorenja o projektnim prekretnicama - Pokrećite Brevo kampanje pri objavama verzija i dovršetku sprintova
- Podaci o kapacitetu tima - Sinkronizirajte metrike radnog opterećenja za operativne nadzorne ploče
- Događaji promjene statusa - Pratite prijelaze radnog toka problema kao Brevo događaje
- Sinkronizacija komentara - Prosljeđujte komentare prema klijentima u Brevo zapisnike aktivnosti
Preduvjeti
Prije nego što počnete, osigurajte da imate:
- Jira Cloud instancu (Jira Software, Jira Service Management ili Jira Work Management)
- Administratorski pristup za stvaranje OAuth aplikacija ili generiranje API tokena
- E-mail Atlassian računa povezan s vašim API tokenom
- Brevo račun s API pristupom
- Tajo račun s aktivnom pretplatom
Autentifikacija
Jira Cloud podržava više metoda autentifikacije.
Opcija 1: OAuth 2.0 (3LO) - Preporučeno
- Idite na developer.atlassian.com
- Kliknite Create > OAuth 2.0 integration
- Konfigurirajte callback URL:
https://app.tajo.io/callbacks/jira - Dodajte ove opsege:
read:jira-workread:jira-userwrite:jira-workread:meStruktura API URL-a za OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Opcija 2: API Token (Basic Auth)
- Idite na id.atlassian.com/manage/api-tokens
- Kliknite Create API token
- Nazovite ga “Tajo Integration”
# Basic Auth: e-mail kao korisničko ime, API token kao lozinkacurl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \ -H "Accept: application/json"Ograničenja API tokena
API tokeni su vezani za pojedinačne korisničke račune. Ako se korisnik deaktivira, integracija se prekida. Koristite OAuth 2.0 za produkcijska postavljanja.
Povezivanje s Tajom
# Korištenjem OAuth 2.0tajo connectors install jira \ --client-id $JIRA_CLIENT_ID \ --client-secret $JIRA_CLIENT_SECRET \ --cloud-id $JIRA_CLOUD_ID
# Korištenjem API Tokenatajo connectors install jira \ --site-url your-domain.atlassian.net \ --api-token $JIRA_API_TOKENKonfiguracija
Osnovna konfiguracija
connectors: jira: enabled: true site_url: "your-domain.atlassian.net" auth_type: "oauth2" # ili "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 RequestMapiranje polja
Mapirajte Jira probleme i korisnička polja na Brevo atribute:
field_mapping: # Korisnička polja accountId: JIRA_ACCOUNT_ID emailAddress: email displayName: FIRSTNAME
# Polja problema mapirana na kontaktne događaje issue_key: LAST_TICKET_KEY issue_status: LAST_TICKET_STATUS issue_priority: LAST_TICKET_PRIORITY issue_created: LAST_TICKET_DATE resolution: LAST_TICKET_RESOLUTIONAPI krajnje točke
Tajo se integrira sa sljedećim Jira Cloud REST API v3 krajnjim točkama:
| Krajnja točka | Metoda | Namjena |
|---|---|---|
/rest/api/3/search | POST | Pretraživanje problema JQL-om |
/rest/api/3/issue/{issueIdOrKey} | GET | Dohvaćanje detalja problema |
/rest/api/3/issue | POST | Stvaranje problema |
/rest/api/3/project | GET | Popis svih projekata |
/rest/api/3/project/{projectIdOrKey} | GET | Dohvaćanje detalja projekta |
/rest/api/3/user/search | GET | Pretraživanje korisnika |
/rest/api/3/myself | GET | Dohvaćanje trenutnog korisnika |
/rest/api/3/issue/{issueIdOrKey}/comment | GET | Dohvaćanje komentara problema |
/rest/api/3/webhook | POST | Registracija webhookova |
/rest/api/3/status | GET | Dohvaćanje svih statusa |
/rest/api/3/priority | GET | Dohvaćanje svih prioriteta |
Primjeri koda
Inicijalizacija 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});Sinkronizacija tiketa podrške
// Sinkronizacija Jira tiketa podrške s Brevo kontaktimaawait 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// }Rukovanje Jira Webhooksima
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');});Pretraživanje problema po klijentu
// Pronalazak svih problema koje je prijavio određeni klijentconst issues = await tajo.connectors.query('jira', { maxResults: 20, fields: ['summary', 'status', 'priority', 'created']});Ograničenja brzine
Jira Cloud primjenjuje ograničenja brzine radi osiguravanja stabilnosti platforme:
| Kontekst | Ograničenje brzine |
|---|---|
| REST API | ~100 zahtjeva po 10 sekundi po korisniku |
| Istovremeni zahtjevi | 10 istovremenih dugotrajnih zahtjeva |
| Skupne operacije | Varira po krajnjoj točki |
Paginacija
Jira koristi paginaciju temeljenu na odmaku s parametrima startAt i maxResults. Zadana veličina stranice je 50, maksimum je 100. Tajo automatski rukuje paginacijom.
Jira vraća odgovor 429 Too Many Requests kada su prekoračena ograničenja brzine, sa zaglavljem Retry-After koje označava kada ponovo pokušati.
Rješavanje problema
Uobičajeni problemi
| Problem | Uzrok | Rješenje |
|---|---|---|
| 401 Unauthorized | Nevažeći token ili istekao OAuth | Osvježite OAuth token ili regenerirajte API token |
| 403 Forbidden | Nedostatne dozvole | Provjerite ima li korisnik pristup traženom projektu |
| JQL greške | Nevažeća sintaksa upita | Validirajte JQL u Jira pretraživanju problema |
| Webhook nije primljen | Vatrozid blokira | Osigurajte da je webhook URL javno dostupan |
| Nedostaju polja | Polje nije u odgovoru | Dodajte polje parametru fields ili koristite expand |
Način otklanjanja grešaka
connectors: jira: debug: true log_level: verbose log_api_calls: trueTestiranje veze
tajo connectors test jira# ✓ API autentifikacija uspješna# ✓ Pristup projektu potvrđen# ✓ Pretraživanje problema operativno# ✓ Traženje korisnika dostupno# ✓ Registracija webhookova aktivnaPreporučene prakse
- Koristite OAuth 2.0 za produkciju - Izbjegava ovisnost o pojedinačnim korisničkim računima
- Filtrirajte JQL-om - Sinkronizirajte samo relevantne probleme za smanjenje API poziva
- Koristite webhookove za sinkronizaciju u stvarnom vremenu - Izbjegavajte anketiranje; registrirajte webhookove za promjene problema
- Poštujte ADF format - Jira v3 koristi Atlassian Document Format za polja obogaćenog teksta
- Mapirajte projekt-na-popis - Stvorite zasebne Brevo popise po Jira projektu
- Rukujte paginacijom - Uvijek iterirajte kroz sve stranice za potpune podatke
Sigurnost
- OAuth 2.0 (3LO) - Sigurna autentifikacija temeljena na tokenima s tokenima za osvježavanje
- API Token + Basic Auth - Base64-kodirane vjerodajnice putem HTTPS-a
- Samo HTTPS - Sva API komunikacija šifrirana putem TLS 1.2+
- Opsežni pristup - OAuth opsezi ograničavaju API pristup na potrebne resurse
- Atlassian Cloud sigurnost - SOC 2 Type II certificirana infrastruktura
- Šifrirano pohranjivanje - Vjerodajnice šifrirane u mirovanju u Taju