---
title: "Jira Connector"
description: "Popoln vodnik za integracijo Jira Cloud za sinhronizacijo težav, projektov in podatkov o aktivnosti ekipe z Brevo prek Tajo."
url: https://tajo.io/sl/docs/connectors/custom/jira/
markdown: https://tajo.io/sl/docs/connectors/custom/jira.md
lang: sl-SI
robots: noindex
---

Zaprosite za zgodnji dostop

Vnesite svoje ime in službeni e-poštni naslov. Poslali vam bomo povezavo za potrditev zahteve za dostop do Taja.

# Jira Connector

Stanje konektorja: Načrtovano Še ni izdelano. Tajo danes ne poganja tega konektorja.

| Izvorno polje | Ciljno polje | Vzorčna vrednost |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

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 dogodkov težav** – posreduj dogodke 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 dogodke Brevo
- **Sinhronizacija komentarjev** – posreduj komentarje, vidne strankam, v dnevnike aktivnosti Brevo

## Predpogoji

Preden začneš, se prepričaj, da imaš:

1. Instanco Jira Cloud (Jira Software, Jira Service Management ali Jira Work Management)
2. Administratorski dostop za ustvarjanje OAuth aplikacij ali generiranje API žetonov
3. E-mail računa Atlassian, povezan s tvojim API žetonom
4. Brevo račun z dostopom do API
5. Tajo račun z aktivno naročnino

## Avtentikacija

Jira Cloud podpira več metod avtentikacije.

### Možnost 1: OAuth 2.0 (3LO) – priporočeno

1. Pojdi na [developer.atlassian.com](https://developer.atlassian.com/console/myapps/)
2. Klikni **Create** > **OAuth 2.0 integration**
3. Nastavi URL povratnega klica: `https://app.tajo.io/callbacks/jira`
4. Dodaj te obsege:

```
read:jira-work
read:jira-user
write:jira-work
read:me
```

Struktura URL API za OAuth 2.0:

```
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}
```

### Možnost 2: API žeton (Basic Auth)

1. Pojdi na [id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
2. Klikni **Create API token**
3. Poimenuj ga “Tajo Integration”

```bash
# Basic Auth: email as username, API token as password
curl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \
  -u "email@example.com:$JIRA_API_TOKEN" \
  -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

```bash
# 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 \
  --email admin@example.com \
  --api-token $JIRA_API_TOKEN
```

## Konfiguracija

### Osnovna nastavitev

```yaml
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
```

### Preslikava polj

Preslikaj polja težav in uporabnikov Jira v atribute Brevo:

```yaml
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
```

## Konč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

```javascript
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

```javascript
// 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
// }
```

### Obravnava webhookov Jira

```javascript
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

```javascript
// Find all issues reported by a specific customer
const issues = await tajo.connectors.query('jira', {
  jql: 'reporter = "customer@example.com" ORDER BY created DESC',
  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

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

### Preizkus povezave

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

## Najboljše prakse

1. **Za produkcijo uporabi OAuth 2.0** – prepreči odvisnost od posameznih uporabniških računov
2. **Filtriraj z JQL** – sinhronizacija samo ustreznih težav za zmanjšanje klicev API
3. **Za posodobitve v realnem času uporabi webhooks** – izogibaj se anketiranju; registriraj webhooks za spremembe težav
4. **Spoštuj format ADF** – Jira v3 za polja z obogatenim besedilom uporablja Atlassian Document Format
5. **Preslikaj projekt na seznam** – ustvari ločene sezname Brevo na projekt Jira
6. **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

## Povezani viri

- [GitHub Connector](https://tajo.io/sl/docs/connectors/custom/github)
- [Linear Connector](https://tajo.io/sl/docs/connectors/custom/linear)
- [Gorgias Connector](https://tajo.io/sl/docs/connectors/support/gorgias)
- [Brevo Contacts API](https://tajo.io/sl/docs/contact-management)
