Word Odniesienie do tokena szablonu
Pełna lista ścieżek danych (powiązań), których możesz użyć w szablonie Word. Odzwierciedla to panel referencyjny tokenu w produkcie i katalog powiązań wymuszany przez moduł sprawdzania poprawności — jeśli ścieżka nie jest tutaj wymieniona, edytor ją flaguje. Informacje na temat gramatyki i formaterów znajdziesz w Word Tryb szablonu.
Jak czytać tę stronę
- W tokenie wartości zastosowano powiązanie skalar:
${issue.summary}. - W pętli używane jest wiązanie kolekcja:
${#each issue.subtasks as sub}…${/each}. Wewnątrz pętli dojdź do pola elementu poprzez zmienną pętli:${sub.key}. - Tiers — A jest ogólnie dostępny; B jest wysyłany tylko dlatego, że pakiet wydania zawiera już dane; C jest widoczny, ale nie można powiązać, wymieniony, aby produkt był rzetelny co do zakresu.
- To, które elementy główne są dostępne, zależy od kontekstu eksportu.
Eksportuj konteksty i ich korzenie
Szablon Word działa w jednym z siedmiu kontekstów, każdy eksponuje inny zestaw korzeni najwyższego poziomu.
| Kontekst | Dostępne korzenie |
|---|---|
single-issue | issue, generatedAt |
automation (Jira Działanie automatyczne) | issue, generatedAt |
multi-issue (JQL / tablica) | issues, issueGroups, generatedAt |
scheduled | issues, issueGroups, generatedAt |
sprint | issues, issueGroups, sprint, generatedAt |
release | issues, issueGroups, release, generatedAt |
backlog | issues, issueGroups, backlog, generatedAt |
generatedAt (data/godzina) jest dostępny w kontekście każdy.
Poziom A — powierzchnia problemu (issue.*)
Dostępne w wersjach single-issue i automation. Te same pola mają kształt poszczególnych elementów kolekcji issues — wewnątrz ${#each issues as it} użyj ${it.key}, ${it.summary} i tak dalej.
Skalary
| Ścieżka | Typ |
|---|---|
issue.key | ciąg |
issue.summary | ciąg |
issue.description | tekst sformatowany (ADF) |
issue.status | stan |
issue.status.category | ciąg |
issue.priority | priorytet |
issue.assignee | użytkownik |
issue.assignee.displayName | ciąg |
issue.reporter | użytkownik |
issue.reporter.displayName | ciąg |
issue.created | datagodzina |
issue.updated | datagodzina |
issue.dueDate | data |
issue.parent.key | ciąg |
issue.parent.summary | ciąg |
issue.parent.status | ciąg znaków |
Wartość wpisana user domyślnie renderuje nazwę wyświetlaną; użyj formatyzatora user, aby wybrać część, np. ${issue.assignee | user("displayName")}. Wartość tekstu sformatowanego jest renderowana; użyj | plain(), aby usunąć formatowanie.
Kolekcje
| Kolekcja | Pola pozycji (w odniesieniu do zmiennej pętli) |
|---|---|
issue.labels | lista wartości prostych — zmienna pętli jest ciągiem etykiety |
issue.components | name |
issue.fixVersions | name, released (wartość logiczna) |
issue.affectsVersions | name |
issue.subtasks | key, summary, status, priority, assignee, dueDate |
issue.comments | author (użytkownik), author.displayName, body (ADF), created, updated |
issue.attachments | filename, mimeType, size, isImage, created, author.displayName — tylko metadane, bez pliku binarnego i bez adresu URL |
issue.issueLinks | typeName, direction, linkedIssue.key, linkedIssue.summary, linkedIssue.status |
issue.worklogs | author.displayName, timeSpent, timeSpentSeconds, created, started |
Przykład:
${#each issue.worklogs as wl}
${wl.author.displayName}: ${wl.timeSpentSeconds | duration("hm")} on ${wl.started | date("yyyy-MM-dd")}
${/each}
Poziom A — korzenie obejmujące wiele problemów
Dostępne w wersjach multi-issue, scheduled, sprint, release i backlog.
| Ścieżka | Rodzaj | Pola pozycji |
|---|---|---|
issues | kolekcja | pełna powierzchnia wydania względem zmiennej pętli |
issueGroups.fixVersions | kolekcja | key, title, issues |
issueGroups.sprints | kolekcja | key, title, issues |
issueGroups.assignees | kolekcja | key, title, issues |
issueGroups.worklogAssignees | kolekcja | key, title, issues |
Przykład — grupa, następnie zagadnienia w ramach każdej grupy:
${#each issueGroups.assignees as group}
## ${group.title}
${#each group.issues as it}
- ${it.key}: ${it.summary}
${/each}
${/each}
Poziom A — korzenie pakietu kontekstowego
Dostępne tylko w ich w łasnym kontekście.
sprint
| Ścieżka | Typ |
|---|---|
sprint.sprint.name | ciąg |
sprint.sprint.goal | ciąg |
sprint.sprint.state | opcja |
sprint.stats.issueCount | numer |
sprint.stats.percentDone | numer |
release
| Ścieżka | Typ |
|---|---|
release.release.name | ciąg |
release.release.releaseDate | data |
release.release.released | wartość logiczna |
release.stats.issueCount | numer |
release.stats.percentDone | numer |
backlog
| Ścieżka | Pola typu/elementu |
|---|---|
backlog.board.boardName | ciąg |
backlog.board.boardType | opcja |
backlog.stats.totalIssueCount | numer |
| Kolekcja | backlog.groups |
Poziom A — metadane
| Ścieżka | Typ | Konteksty |
|---|---|---|
generatedAt | datagodzina | wszystkie |
Poziom B — dziennik zmian
| Ścieżka | Rodzaj | Pola pozycji |
|---|---|---|
issue.changeHistory | kolekcja | author.displayName, created, items |
Poziom C — widoczny, ale nie można go powiązać
Istnieją one koncepcyjnie, ale nie można ich rozwiązać; są one wymienione, aby redaktor i osoba zajmująca się walidacją mogli rzetelnie określić zakres.
| Możliwości | Uwaga |
|---|---|
issue.jsm | Jira Service Management żądanie, SLA i powierzchnia zatwierdzenia — odroczone. |
| JQL-w-szablonie | Wykryty przez skaner migracji i zdiagnozowany, nigdy nie wykonany. |
| Tempo | Lustro Tempo może istnieć w dzienniku pracy, ale nie jest powiązane. |
| Xray / Zephyr | Pola zarządzania testami wymagają aplikacji innej firmy. |
| Zasoby / Wgląd | Pola obiektów są odroczone. |
Pola niestandardowe
Pola niestandardowe można powiązać w ramach jednej przestrzeni nazw:
${ issue.customFields.<fieldId>.<…> }
- Nieznane identyfikatory pól niestandardowych to soft: edytor wyświetla ostrzeżenie, a wartość może być pusta, ale nigdy nie jest to twardy blok — więc szablon może bez problemu odwoływać się do pola, którego ta witryna nie posiada.
- Naga ścieżka
issue.customFields(cała mapa) nie jest nigdy możliwa do powiązania. - Dozwolone są tylko bezpieczne znaki identyfikacyjne; Segmenty
__proto__,prototypeiconstructorsą odrzucane.
Zastrzeżenia podczas migracji z Xportera
Skaner migracji sugeruje ścieżki Exportelier dla popularnych nazw pól Xportera. Warto wiedzieć dwie rzeczy, aby sugerowane przepisanie rzeczywiście rozwiązało problem:
- Autokonwersja naprawia składnię, a nie istnienie ścieżki. Przepisanie ma odpowiedni kształt, ale cel musi nadal być rzeczywistym powiązaniem na tej stronie, w przeciwnym razie wygeneruje ostrzeżenie
unknown-binding:- Nie w katalogu:
Creator→issue.creator,Resolution→issue.resolution,Project→issue.project,IssueType/Type→issue.issuetype. - Niezgodność wielkości liter:
DueDatejest sugerowana jakoissue.duedate, ale powiązanie toissue.dueDate. - **Niezgodność rodzaju: **
Labelsjest sugerowane jako skalar, aleissue.labelsjest kolekcją — użyj pętli.
- Nie w katalogu:
- Wydaj linki. Alias
Linksjest sugerowany jakolinks, ale prawdziwe powiązanie toissue.issueLinks.
Zobacz Składnia Xportera: co działa, aby zapoznać się z pełną mapą migracji.
Ścieżki, które nigdy nie są dozwolone
Ze względów bezpieczeństwa niektóre ścieżki są odrzucane z błędem unsafe-template niezależnie od kontekstu — pól wewnętrznych, danych uwierzytelniających lub zawierających adres URL. Należą do nich korzenie takie jak auth, context, forge, internal, secrets, storage i token oraz dowolna ścieżka kończąca się na accountId, apiToken, avatarUrl, baseUrl, contentUrl, thumbnailUrl, cookie, session, headers, private lub storageRef. Trzymaj się wiązań na tej stronie, a na nie nie trafisz.