Konektor Jira

Połącz swoją instancję Jira Cloud z Brevo, aby śledzić zgłoszenia skierowane do klientów, zapewnić widoczność zgłoszeń pomocy technicznej i wysyłać powiadomienia o kamieniach milowych projektu przez Tajo.

Przegląd

WłaściwośćWartość
PlatformaJira Cloud
KategoriaNiestandardowa
Poziom konfiguracjiŚredni
Integracja oficjalnaNie
Synchronizowane daneZgłoszenia, Projekty, Użytkownicy, Zdarzenia
Typ APIREST API v3
UwierzytelnianieOAuth 2.0 (3LO) / Token API (Basic Auth)
Bazowy URLhttps://your-domain.atlassian.net/rest/api/3/

Funkcje

  • Synchronizacja zdarzeń zgłoszeń - Przekazuj zdarzenia tworzenia, aktualizacji i rozwiązywania zgłoszeń do osi czasu kontaktów Brevo
  • Śledzenie zgłoszeń klientów - Łącz zgłoszenia Jira z kontaktami Brevo dla widoczności wsparcia
  • Alerty o kamieniach milowych projektu - Wyzwalaj kampanie Brevo przy wydaniach wersji i zakończeniach sprintów
  • Dane wydajności zespołu - Synchronizuj metryki obciążenia dla operacyjnych dashboardów
  • Zdarzenia zmiany statusu - Śledź przejścia workflow zgłoszeń jako zdarzenia Brevo
  • Synchronizacja komentarzy - Przekazuj komentarze skierowane do klientów do logów aktywności Brevo

Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

  1. Instancję Jira Cloud (Jira Software, Jira Service Management lub Jira Work Management)
  2. Dostęp administratora do tworzenia aplikacji OAuth lub generowania tokenów API
  3. Adres e-mail konta Atlassian powiązany z tokenem API
  4. Konto Brevo z dostępem do API
  5. Konto Tajo z aktywną subskrypcją

Uwierzytelnianie

Jira Cloud obsługuje wiele metod uwierzytelniania.

Opcja 1: OAuth 2.0 (3LO) - zalecane

  1. Przejdź do developer.atlassian.com
  2. Kliknij Create > OAuth 2.0 integration
  3. Skonfiguruj URL zwrotny: https://app.tajo.io/callbacks/jira
  4. Dodaj te zakresy:
read:jira-work
read:jira-user
write:jira-work
read:me

Struktura URL API dla OAuth 2.0:

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

Opcja 2: Token API (Basic Auth)

  1. Przejdź do id.atlassian.com/manage/api-tokens
  2. Kliknij Create API token
  3. Nazwij go „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"

Ograniczenia tokenu API

Tokeny API są powiązane z indywidualnymi kontami użytkowników. Jeśli użytkownik zostanie dezaktywowany, integracja przestanie działać. Używaj OAuth 2.0 dla wdrożeń produkcyjnych.

Połączenie z 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

Konfiguracja

Podstawowa konfiguracja

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

Mapowanie pól

Mapuj pola zgłoszeń i użytkowników Jira na atrybuty 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

Endpointy API

Tajo integruje się z następującymi endpointami Jira Cloud REST API v3:

EndpointMetodaCel
/rest/api/3/searchPOSTWyszukaj zgłoszenia używając JQL
/rest/api/3/issue/{issueIdOrKey}GETPobierz szczegóły zgłoszenia
/rest/api/3/issuePOSTUtwórz zgłoszenie
/rest/api/3/projectGETLista wszystkich projektów
/rest/api/3/project/{projectIdOrKey}GETPobierz szczegóły projektu
/rest/api/3/user/searchGETWyszukaj użytkowników
/rest/api/3/myselfGETPobierz bieżącego użytkownika
/rest/api/3/issue/{issueIdOrKey}/commentGETPobierz komentarze do zgłoszenia
/rest/api/3/webhookPOSTZarejestruj webhooki
/rest/api/3/statusGETPobierz wszystkie statusy
/rest/api/3/priorityGETPobierz wszystkie priorytety

Przykłady kodu

Inicjalizacja 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
});

Synchronizuj zgłoszenia pomocy technicznej

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

Obsługa webhooków 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');
});

Wyszukiwanie zgłoszeń według klienta

// 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']
});

Limity API

Jira Cloud stosuje limity szybkości dla zapewnienia stabilności platformy:

KontekstLimit
REST API~100 żądań na 10 sekund na użytkownika
Równoczesne żądania10 długotrwałych żądań równocześnie
Operacje zbiorczeRóżne w zależności od endpointu

Paginacja

Jira używa paginacji opartej na przesunięciu z parametrami startAt i maxResults. Domyślny rozmiar strony to 50, maksymalny to 100. Tajo obsługuje paginację automatycznie.

Jira zwraca odpowiedź 429 Too Many Requests po przekroczeniu limitów szybkości, z nagłówkiem Retry-After wskazującym, kiedy ponowić próbę.

Rozwiązywanie problemów

Typowe problemy

ProblemPrzyczynaRozwiązanie
401 UnauthorizedNieprawidłowy token lub wygasły OAuthOdśwież token OAuth lub wygeneruj ponownie token API
403 ForbiddenNiewystarczające uprawnieniaSprawdź, czy użytkownik ma dostęp do żądanego projektu
Błędy JQLNieprawidłowa składnia zapytaniaNajpierw zweryfikuj JQL w wyszukiwarce zgłoszeń Jira
Webhook nie odebranyZapora blokujeUpewnij się, że URL webhooka jest publicznie dostępny
Brakujące polaPole nie w odpowiedziDodaj pole do parametru fields lub używaj expand

Tryb debug

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

Test połączenia

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

Najlepsze praktyki

  1. Używaj OAuth 2.0 dla produkcji - Unikaj zależności od indywidualnych kont użytkowników
  2. Filtruj z JQL - Synchronizuj tylko istotne zgłoszenia, aby zmniejszyć wywołania API
  3. Używaj webhooków w czasie rzeczywistym - Unikaj odpytywania; rejestruj webhooki dla zmian zgłoszeń
  4. Respektuj format ADF - Jira v3 używa Atlassian Document Format dla pól z bogatym tekstem
  5. Mapuj projekt na listę - Twórz oddzielne listy Brevo dla każdego projektu Jira
  6. Obsługuj paginację - Zawsze iteruj przez wszystkie strony dla kompletnych danych

Bezpieczeństwo

  • OAuth 2.0 (3LO) - Bezpieczne uwierzytelnianie oparte na tokenach z tokenami odświeżania
  • Token API + Basic Auth - Poświadczenia zakodowane w Base64 przez HTTPS
  • Tylko HTTPS - Cała komunikacja API zaszyfrowana przez TLS 1.2+
  • Ograniczony dostęp - Zakresy OAuth ograniczają dostęp API do wymaganych zasobów
  • Bezpieczeństwo Atlassian Cloud - Infrastruktura certyfikowana SOC 2 Type II
  • Szyfrowane przechowywanie - Poświadczenia szyfrowane w spoczynku w Tajo

Powiązane zasoby

Subscribe to updates

developer-docs

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

auto-detect
Asystent AI

Cześć! Zapytaj mnie o dokumentację.