Conector Jira
Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.
Ilustrație · date de exemplu
Exemplu de sincronizare
Sursă
Jira
Starea conectorului: Planificat
Destinație
Celălalt instrument al tău
Starea conectorului: Instrument personalizat
Maparea câmpurilor
| Câmp sursă | Câmp destinație | Valoare exemplu |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Ciornă
- Verifică o înregistrare
- Aprobă această versiune
Stările se referă la fiecare conector și nu garantează că această sincronizare este pregătită. Câmpurile sunt ilustrative. Verifică schema și permisiunile reale înainte de sincronizare.
Conectați instanța dvs. Jira Cloud la Brevo pentru urmărirea problemelor vizibile clienților, vizibilitatea tichetelor de suport și notificările privind etapele proiectului prin Tajo.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Jira Cloud |
| Categorie | Personalizat |
| Complexitate configurare | Moderată |
| Integrare oficială | Nu |
| Date sincronizate | Probleme, Proiecte, Utilizatori, Evenimente |
| Tip API | REST API v3 |
| Autentificare | OAuth 2.0 (3LO) / Token API (Basic Auth) |
| URL de bază | https://your-domain.atlassian.net/rest/api/3/ |
Funcționalități
- Sincronizare evenimente de probleme - Transmiteți evenimentele de creare, actualizare și rezolvare a problemelor în cronologiile de contact Brevo
- Urmărire tichete clienți - Legați problemele Jira de contactele Brevo pentru vizibilitate suport
- Alerte etape proiect - Declanșați campanii Brevo la lansări de versiuni și completări de sprint
- Date capacitate echipă - Sincronizați valorile de încărcare pentru tablouri de bord operaționale
- Evenimente de schimbare status - Urmăriți tranzițiile de flux de lucru ale problemelor ca evenimente Brevo
- Sincronizare comentarii - Transmiteți comentariile vizibile clienților în jurnalele de activitate Brevo
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- O instanță Jira Cloud (Jira Software, Jira Service Management sau Jira Work Management)
- Acces de administrator pentru a crea aplicații OAuth sau a genera tokeni API
- E-mailul contului Atlassian asociat cu tokenul API
- Un cont Brevo cu acces API
- Un cont Tajo cu abonament activ
Autentificare
Jira Cloud suportă mai multe metode de autentificare.
Opțiunea 1: OAuth 2.0 (3LO) - Recomandat
- Accesați developer.atlassian.com
- Faceți clic pe Create > OAuth 2.0 integration
- Configurați URL-ul de callback:
https://app.tajo.io/callbacks/jira - Adăugați aceste scopuri:
read:jira-workread:jira-userwrite:jira-workread:meStructura URL-ului API pentru OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Opțiunea 2: Token API (Basic Auth)
- Accesați id.atlassian.com/manage/api-tokens
- Faceți clic pe Create API token
- Denumiți-l “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"Limitări token API
Tokenii API sunt legați de conturi de utilizatori individuali. Dacă utilizatorul este dezactivat, integrarea se întrerupe. Utilizați OAuth 2.0 pentru implementări în producție.
Conectare la 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_TOKENConfigurare
Configurare de bază
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 RequestMapare câmpuri
Mapați câmpurile problemelor și utilizatorilor Jira la atributele 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_RESOLUTIONPuncte finale API
Tajo se integrează cu următoarele puncte finale ale API-ului REST v3 Jira Cloud:
| Punct final | Metodă | Scop |
|---|---|---|
/rest/api/3/search | POST | Caută probleme folosind JQL |
/rest/api/3/issue/{issueIdOrKey} | GET | Obține detaliile problemei |
/rest/api/3/issue | POST | Creează o problemă |
/rest/api/3/project | GET | Listează toate proiectele |
/rest/api/3/project/{projectIdOrKey} | GET | Obține detaliile proiectului |
/rest/api/3/user/search | GET | Caută utilizatori |
/rest/api/3/myself | GET | Obține utilizatorul curent |
/rest/api/3/issue/{issueIdOrKey}/comment | GET | Obține comentariile problemei |
/rest/api/3/webhook | POST | Înregistrează webhook-uri |
/rest/api/3/status | GET | Obține toate statusurile |
/rest/api/3/priority | GET | Obține toate prioritățile |
Exemple de cod
Inițializare conector
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});Sincronizare probleme de suport
// 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// }Gestionare webhook-uri 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');});Căutare probleme după client
// Find all issues reported by a specific customerconst issues = await tajo.connectors.query('jira', { maxResults: 20, fields: ['summary', 'status', 'priority', 'created']});Limite de rată
Jira Cloud aplică limite de rată pentru a asigura stabilitatea platformei:
| Context | Limită de rată |
|---|---|
| REST API | ~100 cereri per 10 secunde per utilizator |
| Cereri concurente | 10 cereri cu durată lungă concurente |
| Operații în bloc | Variabil în funcție de punct final |
Paginare
Jira utilizează paginare bazată pe offset cu parametrii startAt și maxResults. Dimensiunea implicită a paginii este 50, maximul este 100. Tajo gestionează paginarea automat.
Jira returnează un răspuns 429 Too Many Requests când limitele de rată sunt depășite, cu un antet Retry-After indicând când să reîncercați.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | Token invalid sau OAuth expirat | Reîmprospătați tokenul OAuth sau regenerați tokenul API |
| 403 Interzis | Permisiuni insuficiente | Verificați că utilizatorul are acces la proiectul solicitat |
| Erori JQL | Sintaxă de interogare invalidă | Validați JQL în căutarea de probleme Jira mai întâi |
| Webhook nerecepted | Firewall blochează | Asigurați-vă că URL-ul webhook este accesibil public |
| Câmpuri lipsă | Câmpul nu este în răspuns | Adăugați câmpul la parametrul fields sau utilizați expand |
Modul de depanare
connectors: jira: debug: true log_level: verbose log_api_calls: trueTestare conexiune
tajo connectors test jira# ✓ API authentication successful# ✓ Project access verified# ✓ Issue search operational# ✓ User lookup available# ✓ Webhook registration activeBune practici
- Utilizați OAuth 2.0 pentru producție - Evitați dependența de conturi de utilizatori individuali
- Filtrați cu JQL - Sincronizați doar problemele relevante pentru a reduce apelurile API
- Utilizați webhook-uri pentru timp real - Evitați interogarea; înregistrați webhook-uri pentru modificările problemelor
- Respectați formatul ADF - Jira v3 utilizează Atlassian Document Format pentru câmpuri cu text îmbogățit
- Mapați proiectul la listă - Creați liste Brevo separate per proiect Jira
- Gestionați paginarea - Iterați întotdeauna prin toate paginile pentru date complete
Securitate
- OAuth 2.0 (3LO) - Autentificare bazată pe token securizat cu tokeni de reîmprospătare
- Token API + Basic Auth - Credențiale codificate Base64 prin HTTPS
- Numai HTTPS - Toată comunicarea API criptată prin TLS 1.2+
- Acces cu scop limitat - Scopurile OAuth limitează accesul API la resursele necesare
- Securitate Atlassian Cloud - Infrastructură certificată SOC 2 Tip II
- Stocare criptată - Credențiale criptate în repaus în Tajo